List系列集合的五种遍历方式:
1.迭代器遍历 Itrator
2.列表迭代器
3.增强for
4.Lambda表达式来简化forEach
5.普通for
java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.function.Consumer;
public class Main{
public static void main(String[] args){
/*
List系列集合的五种遍历方式:
1.迭代器遍历 Itrator
2.列表迭代器
3.增强for
4.Lambda表达式来简化forEach
5.普通for
*/
//创建集合并且添加元素
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//1.迭代器
Iterator<String> it =list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//2.增强for的遍历方式
for(String s:list){
System.out.println(s);//这里的s是一个第三方变量 用来临时储存并且打印的 依次表示集合中的每一个元素
}
//4.Lambda表达式
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
list.forEach(s->System.out.println(s));//这里是由匿名内部类修改的Lambda表达式形式出现的
//5.普通for
//size和get方法
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//2.列表迭代器:是一个新的知识点
//也称为 ListIterator 也是一个接口 相较于其他我们之前学习过的方法
//我们现在来研究一下这个新的接口
//ListIterator是一个Iterator的子接口
//hasNext是原先一样的 Next是原先一样的
//有一个add是新的方法
//这里有hasPrevious和previous方法的方向是与hasNext和Next方向相反的
//我们是不是回忆起了 这个在Iterator当中 移动到字符串最后一位就不会动了
//如果你在list类型当中 你就可以使用previous和hasPrevious来回溯
ListIterator<String> lit = list.listIterator();
//在遍历的过程中可以添加元素 这是不同于Iterator的
while(it.hasNext()){
String str=it.next();
if("bbb".equals(str)){
//list.add("qqq");//这样是不可以的 不可以用集合来添加
lit.add("qqq");//这样是可以的 你只能用迭代器本身的方法进行添加
}
System.out.println(str);
}
}
}