stream表达式从一个集合中条件过滤参数

List集合过滤学习记录


从一个集合list1中过找到name为list3的参数集合


        List<Student> list1 = new ArrayList<>();
        list1.add(new Student("name100", "100"));
        list1.add(new Student("name102", "102"));
        list1.add(new Student("name103", "103"));
        list1.add(new Student("name104", "100"));

        List<String> list3 = new ArrayList<>();
        list3.add("100");
        list3.add("102");


        List<Student> collect = list1.stream().filter(x -> list3.contains(x.getName())).collect(Collectors.toList());
        System.out.println("交集:" + collect);




@Data
class Student {
    private String id;
    private String name;
}

交集:[Student(id=name100, name=100), Student(id=name102, name=102), Student(id=name104, name=100)]


Stream流中的filter 方法基本使用的代码如:


  //创建一个Stream流
        Stream<String> stream = Stream.of("张先生", "张三", "张四", "小明", "老王");
        //对Stream流中的元素进行过滤,只要姓张的人
        Stream<String> stream2 = stream.filter((String name)->{return name.startsWith("张");});
        //遍历stream2流
        stream2.forEach(name-> System.out.println(name));

        /*
            Stream流属于管道流,只能被消费(使用)一次
            第一个Stream流调用完毕方法,数据就会流转到下一个Stream上
            而这时第一个Stream流已经使用完毕,就会关闭了
            所以第一个Stream流就不能再调用方法了
            IllegalStateException: stream has already been operated upon or closed
         */
        //遍历stream流
        stream.forEach(name-> System.out.println(name));




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值