为什么allMatch函数在java中的空列表中返回true [duplicate]

问题描述 投票:0回答:1

这个问题在这里已有答案:

对于Java SE 8 docallMatch(Predicate<? super T> predicate)

“...评估谓词对流的元素的通用量化(对于所有x P(x))。如果流为空,则量化被认为是空的满足并且始终为真(无论P(不管P) X))。”

将空列表视为allMatch为true似乎并不直观。什么是“普遍量化”和“空洞满足”?

java java-8 java-stream
1个回答
2
投票

假设我有一份馅饼清单。

我想检查所有馅饼是否都是山核桃。

所以我看第一个馅饼,它是樱桃,所以我说这是假的。

我只能说我的馅饼不是山核桃,这是假的。

因此,当我没有馅饼时,没有一个馅饼不是山核桃。

这是一个愚蠢的例子,但这个警告已经让我好几次了

© www.soinside.com 2019 - 2024. All rights reserved.