我该如何用Java编写以下Python代码?
a = [True, False]
any (a)
all (a)
在我还没有开始解释之前,有人可能会问:"你尝试过什么?"
最简单的方法是编写自己的all
和any
方法(当然还需要一个类来承载它们):
public boolean any (boolean [] items)
{
for (boolean item: items)
if (item) return true;
return false;
}
//other way round for all
但我并不打算重新发明轮子,肯定有一个巧妙的方法来实现这个...
all()
,您也可以使用 De Morgan 定律轻松获得它。也就是说,all(a) = !any(!a)
。 - Jeff Irwinany()
不同于Collection#contains()
。any()
可以接受任何可迭代对象并在迭代过程中遇到真值时返回True
。 这里的关键是在 Python 中通常使用生成器表达式提供可迭代对象;例如:any(path.startswith(prefix) for prefix in collection_of_prefixes)
。这使得any()
对于任意测试非常有用。Collection#contains()
仅支持等值测试。Java 8 流 API 的anyMatch()
测试是一个很好的相当方法。 - Martijn Pieters