List集合的五种遍历方式

一、List五种遍历方式

方法 说明 迭代器遍历 在遍历的过程中需要删除元素,请使用迭代器。 列表迭代器 在遍历的过程中需要添加元素,请使用列表迭代器。 增强for遍历 仅仅想遍历,那么使用增强for或Lambda表达式。 Lambda表达式 仅仅想遍历,那么使用增强for或Lambda表达式。 普通for 如果遍历的时候想操作索引,可以用普通fo,。

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);
    }
经验分享 程序员 微信小程序 职场和发展