我有一个if语句,如下所示,我正在检查count
数组中的所有值是否等于零。
if (count[1] == 0 && count[2] == 0 && count[3] == 0 && count[4] == 0
&& count[5] == 0 && count[6] == 0) {
}
有没有办法简化这个陈述?另请注意,我不想查看count[0]
。
答案 0 :(得分:4)
您可以使用IntStream
和allMatch(IntPredicate)
。
if (IntStream.of(count).allMatch(x -> x == 0)) {
// ...
}
将包含count[0]
,以排除count[0]
您可能改为
if (IntStream.rangeOf(1, count.length).allMatch(x -> count[x] == 0)) {
}
或(感谢@Louis Wasserman)
if (IntStream.of(count).skip(1).allMatch(x -> x == 0)) {
// ...
}
答案 1 :(得分:1)
一种可能的解决方案是使用简单的for循环迭代count
数组并检查数组中包含的元素的值,以确定它们的值是否为零。
public boolean isAllZero(int[] array){
for(int i = 1; i < array.length; i++){
if(array[i] != 0){
return false;
}
}
return true;
}
答案 2 :(得分:1)
在Java 8中
boolean isAllZero = Arrays.asList(myArray).stream().allMatch(val -> val == 0);