2015-02-03 3 views
0

Я пытаюсь вернуть этот метод к массиву булевых значений. Булевские значения будут истинными или ложными в зависимости от того, является ли данное целое число более высоким или равным (true) для значений в someNumbers [i] или ниже (false).Ищет способ изменить булевский массив на логический массив в Java

Например, если значение пола равно 19, а someNumbers содержит: 1, 785, 17, 56, 78. Булевский массив будет ложным, истинным, ложным, истинным, истинным.

Вот мой метод 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

Я задаюсь вопрос о пути, чтобы изменить логическое значение в булев массив или если требуется другое решение. Любая помощь будет принята с благодарностью.

+0

Сколько вы знаете о массивах? – immibis

+0

Я думаю, что вы имеете в виду: Результаты [i] = (someNumbers [i]> = floor); – swstephe

ответ

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; 
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; 
    } 
Смежные вопросы