您的位置 首页 java

Java Lambda从入门到精通十三 流的使用-查找与匹配

Java Lambda 流的使用 查找与匹配

这一节主要演示lambda的几个查找与匹配元素的方法。

初始化测试数据:

         //查找与匹配
        List<Student> list = new ArrayList<>();
        String[] names = {"小明","小华","小志","小东","小李","小张","小王","小周","小吴","小郑"};
        for(int i=0; i<10; i++) {
            Student student = Student.builder()
                    .name(names[i])
                    .age(12+i/5)
                    .no(i+1)
                    .math(85d+i).build();
            list.add(student);
        }

        //初始化数据
        System.out.println("======初始化数据:======");
        list.forEach(System.out::println);  

1、allMatch-只有流中所有元素都满足才返回true

         boolean allMatch = list.stream().allMatch(x -> x.getMath() > 80);
        System.out.println("allMatch所有学生数学成绩是否都大于80分:"+allMatch);  

输出结果:

 allMatch所有学生数学成绩是否都大于80分:true  

2、anyMatch

         boolean anyMatch = list.stream().anyMatch(x -> x.getMath() > 95);
        System.out.println("anyMatch所有学生数学成绩是否存在大于95分:"+anyMatch);  

输出结果:

 anyMatch所有学生数学成绩是否存在大于95分:false  

3、noneMatch

         boolean noneMatch = list.stream().noneMatch(x -> x.getMath() > 95);
        System.out.println("noneMatch所有学生数学成绩是否存在大于95分:"+noneMatch);  

输出结果:

 noneMatch所有学生数学成绩是否存在大于95分:true  

4、findAny

         Optional<Student> findAny = list.stream().filter(x -> x.getName().equals("小华")).findAny();
        System.out.println("findAny-学生中名字是否有叫【小华】的:"+findAny.isPresent());  

输出结果:

 findAny-学生中名字是否有叫【小华】的:true  

5、findFirst

         Optional<Student> findFirst = list.stream().filter(x -> x.getName().equals("小华")).findFirst();
        System.out.println("findFirst-学生中名字是否有叫【小华】的:"+findFirst.isPresent());  

输出结果:

 findFirst-学生中名字是否有叫【小华】的:true  

文章来源:智云一二三科技

文章标题:Java Lambda从入门到精通十三 流的使用-查找与匹配

文章地址:https://www.zhihuclub.com/190528.shtml

关于作者: 智云科技

热门文章

网站地图