Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
String campPeople = sport.stream()
.filter(p -> p.getName() != null)
.map(SportsCamp::getName)
.collect(Collectors.joining(" and ",«In camp »," rest all days."));
String campPeople = sport.stream()
.filter(Objects::nonNull)
.map(SportsCamp::getName)
.collect(Collectors.joining(" and ",«In camp »," rest all days."));
Каждая строка описывает одну манипуляцию над стримом, что более очевидно передает логику.Про полезность статьи судить не Вам(возможно, что многим примеры будут полезны).
Про 10000 — феерический бред. Ваша работа — это N*Q, где N — количество элементов, а Q — среднее время обработки элемента. Если Q очень велико, то распараллеливать имеет смысл уже при N = 2. Если Q исключительно мало (например, сложение двух чисел), то параллелизм поможет только при больших N. Кроме того, многое зависит от самих операций в стриме. Если все операции stateless, вы можете получить хороший прирост. Если имеются stateful-операции, можно сильно замедлиться даже для очень большого N. Переменных очень много.
(p1,p2) -> p1.getDay().compareTo(p2.getDay())
Лучше писатьComparator.comparing(SportsCamp::getDay). Меньше вероятность ошибки.
Немного о Stream API(Java 8)