[英]Java compute an array of booleans
目前我正在處理注冊表。 我有一個方法可以檢查數組中的每個字段是否為空,並將結果保存為另一個數組中的布爾值。
基本上用戶必須輸入他的姓名、電子郵件等才能注冊。 我有一個函數,它檢查所有字段是否為空,然后將結果存儲在布爾數組中。
我如何總結布爾數組的結果? 我怎么能做這樣的事情?
boolean resultOverAll = false;
boolean[] validationResultsPerField = new boolean[fields.length];
for (int i = 0; i < validationResultsPerField.length; i++){
if (validationResultsPerField[i] && validationResultsPerField[i+1]){
resultOverAll = true;
}
}
顯然我的邏輯不對。
基本上,您要檢查布爾數組是否全部為真。
public static boolean areAllTrue(boolean[] array) {
for(boolean b : array) if(!b) return false;
return true;
}
這是解決方案。
boolean resultOverAll = true; // lets assume all fields are valid
for (int i = 0; i < validationResultsPerField.length; i++){
if (!validationResultsPerField[i]){ // if you find any false then break
resultOverAll = false;
break;
}
}
您必須檢查所有數組元素是否為真。 您可以使用 Java 8 Streams 使用函數式編程來完成此任務:
Boolean[] validationResultsPerField = new Boolean[fields.length];
boolean resultOverAll = Stream.of(validationResultsPerField).allMatch(validationResult -> validationResult);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.