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提前!
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)
从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)