簡體   English   中英

Java 計算布爾數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM