如何检查数组中的所有元素是否都是Java

Hri*_*rov -4 java arrays boolean

我如何检查数组中的所有元素是偶数还是奇数?对于evens,我尝试用这个:

public boolean isEvens(int[] array) {
    for (int i = 0; i<array.length;i++) {
        if ( i % 2 == 0) {
            return true;
        }
        else {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是有错误...... Thnx提前!

Era*_*ran 7

  • 你应该检查数组元素,而不是数组索引.
  • true在检查数组的所有元素之前,您不应该返回.
  • 您可以使用计数器计算赔率或平均数,或使用布尔值来确定是否存在任何赔率或平均值.

例如:

public boolean allEven(int[] array) {
    for (int i = 0; i<array.length; i++) {
        if (array[i] % 2 != 0) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

要检查所有是偶数还是全部都是奇数:

public boolean allEvenOrAllOdd(int[] array) {
    boolean hasOdd = false;
    boolean hasEven = false;
    for (int i = 0; i<array.length; i++) {
        if (array[i] % 2 == 0) {
            hasEven = true;
            if (hasOdd) { // has both odds and evens
                return false;
            }
        } else {
            hasOdd = true;
            if (hasEven) { // has both odds and evens
                return false;
            }
        }
    }
    return true; // either all elements are odd or all elements are even
}
Run Code Online (Sandbox Code Playgroud)


Zet*_*uli 7

从java 8开始,使用lambdas减少代码是一种很好的做法:

对于偶数:

return Arrays.stream(array).allMatch( i -> i % 2 == 0);
Run Code Online (Sandbox Code Playgroud)

对于奇数:

return Arrays.stream(array).allMatch( i -> i % 2 == 1);
Run Code Online (Sandbox Code Playgroud)