This question already has answers here:
Why does Stream.allMatch() return true for an empty stream?
                                
                                    (4个答案)
                                
                        
                去年关闭。
            
        

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


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


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

最佳答案

假设我有一份馅饼清单。

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

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

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

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

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

07-27 13:46