конвертировать логическое [] в логическое - PullRequest
0 голосов
/ 03 ноября 2018

Допустим, у меня есть этот код:

private static boolean[] between nums(double[] numbers, double thisNumber)
    int i = 0;
int length = numbers.length;
boolean [] r = new boolean [length];
for (i = 0; i < length; i++)
{
    double oneWord = values[i];
    if ((oneDouble >= (thisNumber)
    {
        r.equals(true);
    }
}
return r;

r не возвращает истину. Я не знаю, что я делаю неправильно, но когда я распечатал переменную r, она дала мне кучу действительно странных цифр. Есть ли способ, которым я могу преобразовать логическое [] в логическое, или я здесь на правильном пути?

1 Ответ

0 голосов
/ 03 ноября 2018

Если вы хотите вернуть boolean[] относительно того, какие значения являются как минимум числом, которое вы ищете, вы можете сделать.

private static boolean[] atLeast(double[] numbers, double thisNumber)
    boolean[] results = new boolean[number.length];
    for (int i = 0; i < number.length; i++
        results[i] = number[i] >= thisNumber;
    return results;
}

Или, если вы вернете List<Boolean>

private static List<Boolean> atLeast(double[] numbers, double thisNumber)
    return DoubleStream.of(numbers)
                       .mapToObj(d -> d >= thisNumber)
                       .collect(Collectors.toList());
}

Похоже, вы ищете метод для возврата true, если есть значение, по крайней мере такое же большое, как и число.

private static boolean atLeast(double[] numbers, double thisNumber)
    for (double d : numbers)
        if (d >= thisNumber)
            return true;
    return false;
}

Используя потоки, вы можете написать

private static boolean atLeast(double[] numbers, double thisNumber)
    return DoubleStream.of(numbers)
                       .anyMatch(d >= thisNumber)
}
...