可以使用for
简化此代码吗?
if ((col[0] == null) && (col[1] == null) && (col[2] == null) && (col[3] == null) && (col[4] == null)){
//statement
}
答案 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。