Java计算布尔数组

时间:2019-03-18 03:51:14

标签: java arrays

目前,我正在准备一份注册表。我有一个检查数组中每个字段的方法,以查看其是否为空,并将结果另存为布尔值。

基本上,用户必须输入他的姓名,电子邮件等才能注册。我有一个检查所有字段是否为空的函数,然后将结果存储在布尔数组中。

我如何总结布尔数组的结果? 我该怎么做?

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;
        }
    }

很明显,我的逻辑不正确。

3 个答案:

答案 0 :(得分:0)

基本上,您要检查布尔数组是否全部为真。

public static boolean areAllTrue(boolean[] array) {
    for(boolean b : array) if(!b) return false;
    return true;
}

答案 1 :(得分:0)

这是解决方案。

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;
    }
}

答案 2 :(得分:0)

您必须检查所有数组元素是否为真。您可以通过Java 8 Streams使用函数式编程来完成此任务:

Boolean[] validationResultsPerField = new Boolean[fields.length];
boolean resultOverAll = Stream.of(validationResultsPerField).allMatch(validationResult -> validationResult);