Java 相当于 python all 和 any

2022-09-03 00:40:24

如何在Java中编写以下python行代码?

a = [True, False]
any (a)
all (a)

inb4 “你试过了什么?

大锤的方式是编写我自己的和方法(显然是一个类来托管它们):allany

public boolean any (boolean [] items)
{
    for (boolean item: items)
        if (item) return true;
    return false;
}

//other way round for all

但我不打算重新发明轮子,必须有一个巧妙的方法来做到这一点......


答案 1

any()Collection#contains()是一回事,它是标准库的一部分,实际上是所有实现的实例方法。Collection

但是,没有内置的。除了你的“大锤”方法之外,你得到的最接近的是谷歌番石榴的Iterables#all()all()


答案 2

在Java 7及更早版本中,标准库中没有任何内容可以做到这一点。

在Java 8中,你应该能够使用或用于这种事情,尽管我不确定从性能的角度来看这是否合理。(首先,您需要使用而不是...)Stream.allMatch(...)Stream.anyMatch(...)Booleanboolean