如何检查数组中的所有值是否都具有特定值?

How can I check if all values in an array have a certain value?

在 Java 中,给定一个值数组(比如整数),有没有一种方法可以有效地检查它们是否都具有特定值?

例如,整数数组如:

int[] numbers = {2, 2, 2, 2, 2, 2, 2};

而只有当它们都为2时才需要执行一个动作,有没有比这样做更有效的方法:

if (numbers[1] == 2 && numbers[2] == 2 && numbers[3] == 2 && …)

我知道在 C++ 中有一些方法可以做到这一点,但是 Java 呢?

或者,如果使用 java 8,您可以执行以下操作:

if(Arrays.stream(numbers).allMatch(x -> x == 2)) {
    // do something
}

基本上,几乎所有你想做的涉及 collections/arrays 的事情都可以用 Streams.

非常简洁地完成
public static boolean AreAllEqual(int[] numbers) {
    for(int i = 1; i < numbers.length; i++) {
        if(numbers[0] != numbers[i]) {
            return false;
        }
    }
    return true;
}

在这里使用函数会为您节省大量编码时间,并且还允许您传入任意大小的数组(因为您是根据数组的长度遍历数组)。