jdk1.5出现的新特性---->增强for循环

package cn.itcast.jdk15;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
jdk1.5出现的新特性---->增强for循环

增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)

增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。

增强for循环的格式:

for(数据类型 变量名 :遍历的目标){

}

增强for循环要注意的事项:
1. 增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的过程中不准使用集合
对象对集合的元素个数进行修改。
2. 迭代器遍历元素与增强for循环变量元素的区别:使用迭代器遍历集合的元素时可以删除集合的元素,而增强for循环变量集合的元素时,不能调用迭代器的remove方法删除元素。
3. 普通for循环与增强for循环的区别:普通for循环可以没有变量的目标,而增强for循环一定要有变量的目标。

*/
public class Demo2 {

public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
//添加元素
set.add("狗娃");
set.add("狗剩");
set.add("铁蛋");

/*
//使用迭代器遍历Set的集合.
Iterator<String> it = set.iterator();
while(it.hasNext()){
String temp = it.next();
System.out.println("元素:"+ temp);
it.remove();
}

//使用增强for循环解决
for(String item : set){
System.out.println("元素:"+ item);

}

int[] arr = {12,5,6,1};

普通for循环的遍历方式
for(int i = 0 ; i<arr.length ; i++){
System.out.println("元素:"+ arr[i]);
}

//使用增强for循环实现
for(int item :arr){
System.out.println("元素:"+ item);
}

//需求: 在控制台打印5句hello world.
for(int i = 0 ; i < 5; i++){
System.out.println("hello world");
}
*/

//注意: Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection
// 的集合。
HashMap<String, String> map = new HashMap<String, String>();
map.put("001","张三");
map.put("002","李四");
map.put("003","王五");
map.put("004","赵六");
Set<Map.Entry<String, String>> entrys = map.entrySet();
for(Map.Entry<String, String> entry :entrys){
System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
}

}

}

时间: 2024-12-26 09:27:14

jdk1.5出现的新特性---->增强for循环的相关文章

JDK5.0新特性-增强for循环

============== 增强for循环 它的底层实现就是使用Iterator. 什么样的容器可以使用增强for?-----------Iterable 增强for的缺点:只能进行遍历,不能进行在遍历过程中的操作. 增强for的格式 for(类型 引用:容器){ } -------------------------------------------- 关于对集合的遍历. List 1.Iterator 2.增强for 3.普通for 4.ListIterator Set 1.增强for

使用 HTML5 History 新特性增强 Ajax 的体验(转)

一. 场景再现 如大家熟知,Ajax 可以实现页面的无刷新操作,但会造成两个与普通页面操作(有刷新地改变页面)有着明显差别的问题—— URL 没有修改以及无法使用前进.后退按钮.例如常见的 Ajax 分页,在第一页点击第二页的链接,Ajax 分页完成后浏览器地址栏上显示的 URL 依然是第一页的 URL,使用后退按钮也无法回到第一页.url 的改变代表一个标识,在传统的网页体验中,内容的变更伴随 url 的改变,url 的改变.前进和后退按钮三者之间更加形成一种独特的导航体验,而 Ajax 破坏

Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项

首先来看一段代码: 1 Integer x = new Integer(4); 2 Integer y = 4; 在JDK1.5版本后,以上两行代码都能编译通过,那是因为JDK1.5后加入新特性,自动装箱. 第一句代码是正常的创建对象方法,创建了一个Integer包装类对象. 而第二句中,当左边的Interger类型变量指向右边的int基本类型数据时,右边的基本数据类型会自动装箱成Integer对象,即隐式执行了new Integer(4). 再来一段代码: 1 Integer x = new

JDK1.7的一些新特性

整理了几条对开发可能用到概率高的 1.swicth支持对String的判断:(以前只能支持Int及以下的) switch (s) { case "1": break; case "2": break; case "3": break; } 2.泛型的改善 //JDK1.7 Map<String,String> map = new HashMap<>(); //JDK1.6 Map<String,String>

Java基础之JDK1.8的接口新特性

在Java的JDK1.8中: 1.接口中使用default来修饰普通方法与使用static来修饰普通方法的意义用于避免子类重复实现同样的代码 1 package test; 2 /** 3 * 泛型的使用 4 * @author Administrator 5 * 6 */ 7 public class TestType { 8 9 public static void main(String[] args) { 10 Msg msg = new MsgImpl(); 11 msg.show()

[Java5新特性]加强For循环

替换迭代器 我们先来回忆一下Java中的迭代器的用法,可以使用迭代器的有List和Set集合.原因在于它们都实现了Collection接口,而Collection接口拥有一个叫做Iterable父接口.下面我们来看一个案例: public class Demo { @Test public void demo() { List<String> list = new ArrayList<String>(); list.add("hello"); list.add(

Java 5.0 新特性

package com.fish.jdk15; import java.util.ArrayList; import java.util.Collections; /*  jdk1.5新特性之-------静态导入    静态导入的作用: 简化书写.   静态导入可以作用一个类的所有静态成员(静态方法和静态成员变量).     静态导入的格式:  import static 包名.类名.静态的成员:     静态导入要注意的事项:   1. 如果静态导入的成员与本类的成员存在同名的情况下,那么默

黑马程序员------Java中jdk1.5新特性

Java培训.Android培训.iOS培训..Net培训.期待与您交流! JDK1.5新特性: 为什么会出现新特性: 新的技术出现是为了解决老的问题,Java语言为了提高开发者的开发效率,对之前的某些不利于提高效率的技术进行改进. 静态导入: 静态导入:可以导入某个类下的静态方法,静态导入后,可以不写类名而直接使用此类下的静态方法. 语法:import static 包名.类名.静态方法 代码示例: package com.itheima.day1; /** * 静态导入 * @author

Java——集合(Collection接口),迭代器,增强for循环,泛型

一.集合 Collection接口中的方法是集合中所有实现类必须拥有的方法. ArrayList implements List List extends Collection 1.基本使用 其他 import java.util.ArrayList; /* * 集合体系, * 目标 集合本身是一个存储的容器: * 必须使用集合存储对象 * 遍历集合,取出对象 * 集合自己的特性 */ public class ArrayListDemo { public static void main(St