Java遍历List集合

初始化List集合

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

1.for普通遍历

 for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

2.for加强遍历(for-each循环)

for (String str : list){
        System.out.println(str);
    }

3.foreach,lambda遍历1

list.forEach(e -> {
                System.out.println(e);
            });

4.foreach,lambda遍历2

list.forEach(System.out::println);

5.迭代器while循环

Iterator<String> iterator = list.iterator();
            while (iterator.hasNext()) {
                String value = iterator.next();
                System.out.println(value);
            }

6.迭代器for循环

for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
                String value = it.next();
                System.out.println(value);
            }

7.自带迭代器listIterator循环遍历

ListIterator<String> stringListIterator = list.listIterator();
            while (stringListIterator.hasNext()) {
                System.out.println(integerListIterator.next());
            }

备注:阿里的 Java 编程规约中有一条:【强制】不要在 for-each 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果是并发操作,需要对 Iterator 对象加锁。
1.使用Iterator的remove()方法

Iterator<String> iterator = list.iterator();
            while (iterator.hasNext()) {
                String str = iterator.next();
                if (str.equals("a")) iterator.remove();
            }

2.使用for循环正序遍历

for (int i = 0; i < list.size(); i++) {
                if (list.get(i).equals("a")) {
                    list.remove(i);
                    i--; // 删除元素后,要修正下标的值
                }
            }

3.使用for循环倒序遍历

for (int i = list.size() - 1; i >= 0; i--) {
                if (list.get(i).equals("a")) {
                    list.remove(i);
                }
            }

4.使用removeIf()方法(推荐)

list.removeIf((str) -> "a".equals(str));

你可能感兴趣的:(list,java)