用java中的数组简化if语句

时间:2017-03-17 23:36:33

标签: java arrays if-statement

我有一个if语句,如下所示,我正在检查count数组中的所有值是否等于零。

if (count[1] == 0 && count[2] == 0 && count[3] == 0 && count[4] == 0 
&& count[5] == 0 && count[6] == 0) {

}

有没有办法简化这个陈述?另请注意,我不想查看count[0]

3 个答案:

答案 0 :(得分:4)

您可以使用IntStreamallMatch(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);