如何检查数组中的所有值是否都具有特定值?
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;
}
在这里使用函数会为您节省大量编码时间,并且还允许您传入任意大小的数组(因为您是根据数组的长度遍历数组)。
在 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;
}
在这里使用函数会为您节省大量编码时间,并且还允许您传入任意大小的数组(因为您是根据数组的长度遍历数组)。