As Sum, Collect & reduce
- терминальные операции. Есть ли способ сравнить результат суммы в потоке, чтобы вернуть логическое значение из потока.
Я написал фрагмент кода ниже, чтобы найти Perfect Number. И все, чего не хватает, это последняя строка для сравнения, если SUM = заданное число
private static boolean isPerfectNumber(int number) {
return IntStream.range(1, number / 2 + 1)
.filter(e -> number % e == 0)
.reduce(Integer::sum)
.equals(number); // This Line won't give correct result because I'm comaring an OptionalInt to a Integer instead of optional value.
}
Есть ли способ достичь этого в этом одном потоке, или мне нужно сравнить результат отдельно