寻找一种在Java中将布尔值更改为布尔数组的方法

时间:2015-02-03 23:31:36

标签: java arrays boolean

我试图让这个方法返回一个布尔值数组。布尔值将为true或false,具体取决于给定的floor整数是高于还是等于(true)somenumbers [i]或更低(false)中的值。

例如,如果floor值为19且someNumbers包含:1,785,17,56,78。布尔数组将为false,true,false,true,true。

这是我的Java方法:

public boolean[] boolsRule(int floor, int[] someNumbers) {

    boolean[] results;
    for (int i = 0; i < someNumbers.length; i++) {
        results = (someNumbers[i] >= floor) ? true : false;
    }

    return results;
}

以下是我收到的错误消息:

error: incompatible types results = (someNumbers[i] >= floor) ? true : false; ^ required: boolean[] found: boolean

我想知道一种将布尔值更改为布尔数组的方法,或者是否需要不同的解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

看起来你想要的是

boolean[] results = new boolean[someNumbers.length]; 
    // you have to initialize it
for (int i = 0; i < someNumbers.length; i++) {
    results[i] = someNumbers[i] >= floor; // ? true : false is redundant
    // ^ you're setting the ith element of the array, not the whole array
}

return results;

答案 1 :(得分:0)

您只是忘记在数组的每个单元格中存储布尔值。将结果更改为结果[i]

 public boolean[] boolsRule(int floor, int[] someNumbers) {

        boolean[] results;
        for (int i = 0; i < someNumbers.length; i++) {
            results[i] = (someNumbers[i] >= floor) ? true : false;
        }

        return results;
    }