foreach循环因为传统的for循环(46)

一、java语言支持四种类型:java

(1)接口(interface):数组

(2)类(class):性能

(3)数组(Array):code

(4)基本类型(primitive):惟一非引用类型(reference type)对象

二、方法签名:包括方法名称、参数,不包括返回值;索引

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《接口

一、foreach循环rem

for (T rf : list) {
			Map<String,Object> map=ObjectUtil.getFieldMap(rf);
			datalist.add(map);
		}

(1)迭代器和索引变量容易引发混乱;一旦出错,编译器不必定能发现;get

(2)foreach避免出现混乱;编译器

(3)foreach没有性能损失,数组也同样;

(4)相比于普通for循环,有性能优点,由于对数组边界值仅计算一次;

(5)两个集合嵌套式迭代,foreach优点更明显:

(6)for循环嵌套必须在外层嵌套取出i.next():

(6.1)错误 for循环嵌套:

(7)foreach 嵌套则没必要:

(8)能够遍历集合、数组,实现了Iterator接口的对象

(9)Iterator接口与foreach同时引入java平台:

(10)一组元素,能够不实现Collection接口,请实现Iterator接口,这样可使用foreach;

二、没法使用foreach状况

(1)过滤:在遍历集合,并删除指定元素时;请显式使用迭代器,调用它的remove方法

(2)转换:在遍历列表或集合,并取代部分元素值,须要列表迭代器、数组索引,设定元素值;

(3)平行迭代:在并行遍历多个集合,此时使用嵌套for循环,如(6.1);

三、迭代器Iterator

(1)for循环须要事先知道集合的内部结构,访问代码和集合紧密耦合;

(2)Iterator能够将其分离;

四、迭代器(Iterator)与枚举(Enumeration)有两点不一样:

  • 迭代器取代了 Java Collections Framework 中的 Enumeration;

(1)在迭代期间从迭代器所指向的 collection 移除元素;

(2)方法名称获得了改进,只需使用 next()、hasNext() 两个方法便可完成迭代;

相关文章
相关标签/搜索