如何使用

时间:2015-10-30 13:17:58

标签: java

可以使用for简化此代码吗?

if ((col[0] == null) && (col[1] == null) && (col[2] == null) && (col[3] == null) && (col[4] == null)){    
    //statement 
}

3 个答案:

答案 0 :(得分:3)

您可以在Stream API中使用Java 8功能:

boolean allNull = Arrays.stream(col).allMatch(Objects::isNull);

答案 1 :(得分:1)

使用boolean标志:

boolean areAllNull = true;
for (int i = 0; i < col.length; i ++) {
   if (col[i] != null) { 
       areAllNull = false;
       break;
   }
}

if (areAllNull) {
    //statement 
}

如果您想仅限制数组中的某些位置,请使用变量或常量标记限制来更改col.length

int numberOfPositions = 5;
for (int i = 0; i < numberOfPositions ; i ++)`

答案 2 :(得分:1)

要检查数组中的X元素是否为空,除非可以将它们短路,否则不能减少检查次数(X)。但是,如果将其打包在方法中,则可以使用更清晰的“if”语句:

if (isAllNull(col, 0, 4)){
    // do stuff
}

public boolean isAllNull(Object[] col, int start, int end){
    for (int index=start;index<=end;index++){
        if (col[index] !=null){
            return false;
        }
    }
    return true;
}

当它找到其中一个非空值时,会立即返回false。