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

时间:2015-10-11 05:24:50

标签: java arrays traversal

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

例如,使用整数数组,例如:

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

并且只有当所有这些都是2时才需要执行操作,是否有更有效的方法:

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

我知道有很多方法可以在C ++中实现这一点但是Java呢?

3 个答案:

答案 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
}