Java中anyMatch()、allMatch()、noneMatch()用法详解

说明:
anyMatch():匹配到任何一个元素和指定的元素相等,返回 true
allMatch():匹配到全部元素和指定的元素相等,返回 true
noneMatch():与 allMatch() 效果相反

验证:
一、anyMatch()

1、正常匹配,多元素

List strList = ListUtil.toList("a", "b", "c", "d");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .anyMatch(obj -> obj.equals("a"));
        System.out.println("anyMatch()测试多元素结果:" + a);

输出:anyMatch()测试多元素结果:true

2、正常匹配,单元素

List strList = ListUtil.toList("a");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .anyMatch(obj -> obj.equals("a"));
        System.out.println("anyMatch()测试单元素结果:" + a);

输出:anyMatch()测试单元素结果:true

正常匹配小结:
1、无论多元素还是单元素,只要匹配到任何一个元素等于 a 的都返回 true

3、取反匹配,多元素

List strList = ListUtil.toList("a", "b", "c", "d");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .anyMatch(obj -> !obj.equals("a"));
        System.out.println("anyMatch()测试取反多元素结果:" + a);

输出:anyMatch()测试取反多元素结果:true

4、取反匹配,单元素

List strList = ListUtil.toList("a");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .anyMatch(obj -> !obj.equals("a"));
        System.out.println("anyMatch()测试取反单元素结果:" + a);

输出:anyMatch()测试取反单元素结果:false

取反匹配小结:
1、多元素取反,任何一个元素不等于 a 的返回 true
2、单元素取反,因为是单元素只有a,没有不等于 a 的元素,所以不成立返回 false

二、allMatch()

1、匹配多元素

List strList = ListUtil.toList("a", "b", "c", "d");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .allMatch(obj -> obj.equals("a"));
        System.out.println("allMatch()测试多元素结果:" + a);

输出:allMatch()测试多元素结果:false

2、匹配单元素

List strList = ListUtil.toList("a");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .allMatch(obj -> obj.equals("a"));
        System.out.println("allMatch()测试单元素结果:" + a);

输出:allMatch()测试单元素结果:true

小结:
1、allMatch() 所有元素都等于指定元素返回 true
2、allMatch() 如果取反,等效于 noneMatch() 所有元素不等于指定元素返回 true

三、noneMatch()

1、匹配多元素

List strList = ListUtil.toList("b", "c", "d");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .noneMatch(obj -> obj.equals("a"));
        System.out.println("noneMatch()测试多元素结果:" + a);

输出:noneMatch()测试多元素结果:true

2、匹配单元素

List strList = ListUtil.toList("a");
        boolean a = Optional.ofNullable(strList).orElseGet(ListUtil::toList)
                .stream()
                .noneMatch(obj -> obj.equals("a"));
        System.out.println("noneMatch()测试单元素结果:" + a);

输出:noneMatch()测试单元素结果:false

小结:
1、noneMatch()所有元素都不等于指定元素返回 true 
2、noneMatch() 如果取反,等效于 allMatch() 所有元素等于指定元素返回 true

你可能感兴趣的:(Java基础,Lambda和Stream流,java)