java面试 遍历一个List集合的几种写法

遍历一个List集合有几种写法? list.forEach(System.out::print);这种写法表示什么意思?

首先我们定义一个集合,放几个元素进去

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

1、普通正常for循环的遍历方式

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

2、增强for循环

为了简化for循环,我们使用增强for循环,也是常见的遍历方式

        for (String s : list) {
            System.out.print(s);
        }
        System.out.println(2);

3、迭代器Iterator

除了以上两种方式,我们还有一种可以使用迭代器,在Set集合里使用的比较多,迭代器Iterator

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

4、Stream流 基于匿名内部类

在jdk8版本以后,我们可以通过Stream的方式,里面提供了一个forEach方法去遍历
里面有一个参数Consumer接口
jdk8后抽象出了四个接口
a、Predicate 断言 test
给一个参数,判断是否正确
b、Supplier 供应 get
给一个东西,得到一个对象,通常来讲就是我们产生对象的一个方法
c、Consumer 消费 accept
给一个东西,负责处理一件事情,没有返回值
d、Function 函数 apply
给一个参数,得到一个结果,处理完返回值

     Stream stream1 = list.stream();
        stream1.forEach(new Consumer() {
            @Override
            public void accept(Object o) {
                System.out.print(o);
            }
        });
        System.out.println(4);

5、Stream流 基于lambda


        Stream stream2 = list.stream();
        stream2.forEach(o -> {System.out.print(o);});
        System.out.println(5);

6、Stream流 基于lambda,只有一行代码


        Stream stream3 = list.stream();
        stream3.forEach(o -> System.out.print(o));
        System.out.println(6);

7、Stream流 基于lambda,只有一行代码,且引入了别的方法


        Stream stream4 = list.stream();
        stream4.forEach(System.out::print);
        System.out.println(7);

8、使用list集合的forEach方法

list.forEach(System.out::print);
        System.out.println(8);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值