为什么allMatch函数在Java中的空列表上返回true

时间:2019-03-04 01:52:50

标签: java java-8 java-stream

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

  

“ ......评估谓词在流元素上的通用量化(对于所有x P(x))。如果流为空,则称该量化是空虚的且始终为真(无论如何) P(x))。”

将空列表视为allMatch为真似乎不直观。什么是“通用量化”和“非常满意”?

1 个答案:

答案 0 :(得分:2)

假设我有一份馅饼清单。

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

所以我看第一个馅饼是樱桃,所以我说那是错误的。

我只能说我可以证明我的馅饼不是山核桃,这是错误的。

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

这是一个愚蠢的例子,但是这个警告让我感触了