List遍历的八种写法

List遍历的八种写法


最近在使用List的时候看到了非常方便遍历方法,汇总一下发现竟然有这么多种写法。具体如下:

package com.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;

/**
 * @author 蓝带
 * @date 2020/9/17 0017 0:07
 */
public class ListTraverse {
    
    
    public static void main(String[] args) {
    
    
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);

        // one 原始for
        System.out.println("方法1开始:");
        for (int i = 0; i < list.size(); i++) {
    
    
            System.out.println(list.get(i));
        }
        System.out.println("方法1结束\n");

        // two 增强for
        System.out.println("方法2开始:");
        for (int item : list) {
    
    
            System.out.println(item);
        }
        System.out.println("方法2结束\n");

        // three 迭代器
        System.out.println("方法3开始:");
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
    
    
            System.out.println(iterator.next());
        }
        System.out.println("方法3结束\n");

        // four forEach(JAVA8)
        System.out.println("方法4开始:");
        list.forEach(new Consumer<Integer>() {
    
    
            @Override
            public void accept(Integer integer) {
    
    
                System.out.println(integer);
            }
        });
        System.out.println("方法4结束\n");

        // five Lambda表达式
        System.out.println("方法5开始:");
        list.forEach(item -> System.out.println(item));
        System.out.println("方法5结束\n");

        // six Lambda表达式进阶
        System.out.println("方法6开始:");
        list.forEach(System.out::println);
        System.out.println("方法6结束\n");

        // seven Lambda表达式+stream
        System.out.println("方法7开始:");
        list.stream().forEach(item -> System.out.println(item));
        System.out.println("方法7结束\n");

        // eight Lambda表达式+stream进阶
        System.out.println("方法8开始:");
        list.stream().forEach(System.out::println);
        System.out.println("方法8结束\n");
    }
}

运行结果如下图:
在这里插入图片描述
目前我了解到的就这几种了,欢迎留言批评指正。
本人使用最多的List遍历还是第5种,还挺方便,但是涉及到一些对List元素操作用的还是第2种(好丢人)。看到高手用stream()对List的一通操作着实羡慕,也真正意识到如果能熟练使用stream()和Lambda表达式,对集合的操作代码就能大大缩短,还不熟练的小伙伴一起加油,欢迎分享学习经验。

猜你喜欢

转载自blog.csdn.net/qq_42647711/article/details/108633714
今日推荐