说明:
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