一、迭代器
方法使用
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class study_20_遍历方式 {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("hello");
coll.add("world");
coll.add("study");
coll.add("java");
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
System.out.println(it.next());
}
}
四个细节
- 如果当前位置没有元素,还要强行获取,会报NoSuchElementException
- 迭代器遍历完毕,指针不会复位
- 循环中只能用一次next方法
- 迭代器遍历时,不能用集合的方法进行增加或者删除
二、增强for遍历
说明
- 增强for的底层就是迭代器,为了简化迭代器的代码书写的。它
- JDK5之后出现的,其内部原理就是一个lterator迭代器
- 所有的单列集合和数组才能用增强for进行遍历。
格式
for(元素的数据类型变量名:数组或者集合){
}
示例
import java.util.ArrayList;
import java.util.Collection;
public class study_21_增强for循环遍历 {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("大海");
coll.add("男");
coll.add("30");
coll.add("沈阳");
coll.add("高级测试开发工程师");
for (String s : coll) {
System.out.println(s);
}
}
}
三、Lambda表达式遍历
import java.util.ArrayList;
import java.util.Collection;
public class study_22_Lambda表达式遍历 {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("大海");
coll.add("男");
coll.add("30");
coll.add("沈阳");
coll.add("高级测试开发工程师");
coll.forEach(s -> System.out.println(s));
}
}