Изучаю Java, делаю задачу по stream api, но решение не проходит.
Есть функция принимающая поток строк public static Stream x (Stream >String> value)
Далее поток value разбивается по разделителю, сортируется и преобразуется в Map. Вопрос: return функции должен возвращать поток, но как вернуть значение преобразованного потока, ведь после терминальной операции он исчезает ?
После выполнения терминальной операции поток закрывается и больше не может быть переиспользован. Все промежуточные результаты лучше хранить в коллекциях. Но если так уж необходимо иметь стрим и применять к нему разные терминальные операции, то можно воспользоваться Supplier'ом, умеющим возвращать требуемый Stream.
public static void main(String[] args) {
String[] values = {"c,b,a", "f,e,d", "i,h,g"};
Supplier<Stream<String>> resultStreamSupplier = () -> fun(values, ",");
System.out.println("1) Count: " + resultStreamSupplier.get().count());
System.out.println("2) Joining: " + resultStreamSupplier.get().collect(Collectors.joining()));
System.out.println("3) Map: " + resultStreamSupplier.get().collect(Collectors.toMap(s -> s, String::toUpperCase)));
}
public static Stream<String> fun(String[] values, String splitter) {
return Stream.of(values).flatMap(str -> Arrays.stream(str.split(splitter))).sorted();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Объясните пожалуйста для чего это, если мы создали класс Animal, потом Cat extends Animal, для чего создают объекты вида Animal barsik = new Cat(); если могли просто...
мне нужно сохранить файл в формате Json, чтобы потом при открытии я мог использовать данные которые сохранил, желательно сохранить файл в конкретную...
Всем привет, все никак не могу понять про префикс и суффикс каждого индекса в массиве! Само понимание не приходит и как следствие реализация...