增强for循环
2015-02-24 11:32
99 查看
增强for循环是JDK 5.0出现的新特性,其本质与iterator遍历的效果是一样,也就是说增强for循环的内容就是在调用iterator来实现的。
其优点有:
① 使用增强for在遍历过程中,不需要检查数组的边界,更不用担心数组越界;
② 结构简洁明了,实现iterator接口的都可以使用增强for,等;
结构:
for(变量类型 变量名:需迭代的数组或集合)
{
语句;
}
缺点:
① 不能在增强for循环中动态的删除改变集合内容;
② 不能获取集合的下标值,等;
注意事项:
① ArrayList由于使用数组实现,因此下标明确,最好使用传统的for循环;
② LinkedList获取一个元素,要从头开始向后找,因此尖刺使用增强for循环,也就是使用iterator;
③ Map集合也可通过两种方式进行增强for循环遍历:
a)使用keyset()方法,通过iterator得到Map集合中的每一个key,在通过map.get(key)获取key对应的值;
b)通过entryset方法获取set集合。
普通数组遍历测试:
其优点有:
① 使用增强for在遍历过程中,不需要检查数组的边界,更不用担心数组越界;
② 结构简洁明了,实现iterator接口的都可以使用增强for,等;
结构:
for(变量类型 变量名:需迭代的数组或集合)
{
语句;
}
缺点:
① 不能在增强for循环中动态的删除改变集合内容;
② 不能获取集合的下标值,等;
注意事项:
① ArrayList由于使用数组实现,因此下标明确,最好使用传统的for循环;
② LinkedList获取一个元素,要从头开始向后找,因此尖刺使用增强for循环,也就是使用iterator;
③ Map集合也可通过两种方式进行增强for循环遍历:
a)使用keyset()方法,通过iterator得到Map集合中的每一个key,在通过map.get(key)获取key对应的值;
b)通过entryset方法获取set集合。
普通数组遍历测试:
<span style="white-space:pre"> </span>@Test public void test1() { int arr[]={1,2,3}; for(int i : arr) { System.out.println(i); } String arr1[]={"aaa","bbb","ccc","ddd"}; for(String i:arr1) { System.out.println(i); } }list集合迭代遍历测试:
@Test public void test2() { List list=new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); for(Object obj:list) { String str=(String) obj; System.out.println(str); } }Map集合的传统方式迭代遍历测试:
<span style="white-space:pre"> </span>@Test public void test3() { Map map=new HashMap(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); Set set=map.keySet(); Iterator it=set.iterator(); while(it.hasNext()) { int key= (Integer) it.next(); String value=(String) map.get(key); System.out.println(key+"....."+value); } } @Test public void test4() { Map map=new HashMap(); map.put(1, "aa"); map.put(2, "bb"); map.put(3, "cc"); Set set=map.entrySet(); Iterator it=set.iterator(); while(it.hasNext()) { Map.Entry entry=(Entry) it.next(); int key=(Integer) entry.getKey(); String value=(String) entry.getValue(); System.out.println(key+"......."+value); } }Map集合使用增强for循环的遍历迭代测试:
<span style="white-space:pre"> </span>@Test public void test5() { Map map=new HashMap(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); for(Object obj:map.keySet()) { int key=(Integer) obj; String value=(String) map.get(key); System.out.println(key+"....."+value); } } @Test public void test6() { Map map=new HashMap(); map.put(1, "aa"); map.put(2, "bb"); map.put(3, "cc"); for(Object obj:map.entrySet()) { Map.Entry entry=(Entry) obj; int key=(Integer) entry.getKey(); String value=(String) entry.getValue(); System.out.println(key+"...."+value); } }
相关文章推荐
- 增强For循环
- Guava增强for循环
- 增强for循环
- 黑马程序员—JDK1.5新特性(增强for循环、可变参数、静态导入)
- Arrays,Collections,Math,Random,增强for循环,可变参数,System类
- javaweb中增强for循环的应用和集合迭代的用发示例
- java中集合的遍历与增强for循环的使用
- java关于集合的遍历与增强for循环的使用
- Java泛型和增强for循环
- 【我的Java笔记】增强for循环 & ArrayList集合储存自定义对象并遍历的五种方法
- java增强for循环遍历Map集合问题
- collection中使用增强for循环时删除出错的分析
- 增强for循环
- 普通for循环和增强for循环的使用小结
- Map的传统输出和使用增强for循环的输出
- 16 API-集合(List的子类(ArrayList_Vector_LinkedList,集合嵌套遍历),JDK5新特性(泛型,增强for循环,静态导入,可变参数)
- 关于增强遍历for循环
- JDK1.5新特性5-增强for循环
- 黑马程序员-高新技术-1.5新特性之静态导入、可变参数、增强for循环
- JDK1.5新特性-增强for循环