在Java中,给定一个值数组(比如整数),有没有办法有效地检查它们是否都具有某个值?
例如,使用整数数组,例如:
int[] numbers = {2, 2, 2, 2, 2, 2, 2};
并且只有当所有这些都是2时才需要执行操作,是否有更有效的方法:
if (numbers[1] == 2 && numbers[2] == 2 && numbers[3] == 2 && …)
我知道有很多方法可以在C ++中实现这一点但是Java呢?
答案 0 :(得分:5)
或者,如果使用java 8,您可以执行以下操作:
if(Arrays.stream(numbers).allMatch(x -> x == 2)) {
// do something
}
基本上,您可能想要处理集合/数组的所有事情都可以使用Streams非常简洁地完成。
答案 1 :(得分:0)
public static boolean AreAllEqual(int[] numbers) {
for(int i = 1; i < numbers.length; i++) {
if(numbers[0] != numbers[i]) {
return false;
}
}
return true;
}
在这里使用一个函数可以节省大量的编码时间,并且还允许你传入任意大小的数组(因为你根据它的长度迭代数组)。
答案 2 :(得分:-1)
用于所有Java版本:
public static boolean allMatch(int[] array, int value) {
for (int i = 0; i < array.length; i++)
if (array[i] != value)
return false;
return true;
}
像这样使用:
if (allMatch(numbers, 2)) {
// do something
}
对于Java 8+(从Bhashit Parikh的回答中窃取):
if (Arrays.stream(numbers).allMatch(x -> x == 2)) {
// do something
}