美文网首页
java8 allMatch,anyMatch,noneMatc

java8 allMatch,anyMatch,noneMatc

作者: 饱饱想要的灵感 | 来源:发表于2023-07-25 10:21 被阅读0次

当 allMatch、anyMatch 和 noneMatch 作用于空列表时,

方法 返回值 解释
allMatch true 因为对于没有元素的列表,相当于所有元素都满足某个条件(即所有元素都不存在),因此返回 true
anyMatch false 因为对于没有元素的列表,相当于不存在任何元素满足某个条件,因此返回 false
noneMatch true 因为对于没有元素的列表,不存在任何元素满足某个条件,相当于所有元素都不满足某个条件,因此返回 true

其中, allMatch的返回值不符合日常思维表达, 当列表为空即不存在任何元素时, 应该返回false才符合日常的思维逻辑, 因此需要加个不为空的条件, 如:

List<String> list = List.of();
boolean rightMatch = ObjectUtil.notNull(list) && list.stream().allMatch(item -> item.equals("雨中山果落,灯下草虫鸣。"));

最好是抽成公共方法:

public static <T> boolean allMatch(Collection<T> values, Predicate<T> condition){
    return CollectionUtils.isNotEmpty(values) && values.stream().allMatch(condition);
}

相关文章

网友评论

      本文标题:java8 allMatch,anyMatch,noneMatc

      本文链接:https://www.haomeiwen.com/subject/tzthpdtx.html