List集合的五种遍历方式
一、List五种遍历方式
1、普通for遍历
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
stringList.add("3");
stringList.add("4");
stringList.add("5");
//1、普通for循环
for (int i = 0; i < stringList.size(); i++) {
System.out.println(stringList.get(i));
}
}
2、 增强for遍历
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
stringList.add("3");
stringList.add("4");
stringList.add("5");
//2、增强for循环
for (String s : stringList) {
System.out.println(s);
}
}
3、Lambda表达式
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
stringList.add("3");
stringList.add("4");
stringList.add("5");
//3、lamda表达式
stringList.forEach(s -> {
System.out.println(s);
});
}
4、迭代器遍历
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
stringList.add("3");
stringList.add("4");
stringList.add("5");
//4、迭代器遍历
//获取迭代器对象,迭代器就好比是一个箭头,默认指向集合的0索引处
Iterator<String> it = stringList.iterator();
//利用循环不断的去获取集合中的每一个元素
while (it.hasNext()){
//next方法的两件事情:获取元素并移动指针
String str = it.next();
System.out.println(str);
}
}
迭代器遍历注意点: 1,报错NoSuchElementException,没有元素报异常 2,迭代器遍历完毕,指针不会复位 3,循环中只能用一次next方法 4,迭代器遍历时,不能用集合的方法进行增加或者删除
5、列表迭代器
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
stringList.add("3");
stringList.add("4");
stringList.add("5");
System.out.println("______________");
// 5.列表迭代器
//获取一个列表迭代器的对象,里面的指针默认也是指向8索引的
//额外添加了一个方法:在遍历的过程中,可以添加元素
ListIterator<String> lt = stringList.listIterator();
while (lt.hasNext()){
String str = lt.next();
if ("2".equals(str)){
lt.add("6");
}
}
System.out.println(stringList);
}
