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); }