Вопросы по теме 'java-stream'

Java 8 parallelStream() с сортировкой()
JDK 8 EA уже вышел, и я просто пытаюсь привыкнуть к лямбде и новому Stream API. Я пытался отсортировать список с параллельным потоком, но результат всегда неправильный: import java.util.ArrayList; import java.util.List; public class Test {...
18769 просмотров

Почему BufferedReader не закрывается при получении `Stream‹String›` в попытке с ресурсами?
Читатель должен быть закрыт, когда Stream используется в попытке с ресурсами. Учитывая это: try(Stream<String> lines = new BufferedReader(reader).lines()) { return lines.map(it -> trim ? it.trim() : it)...
814 просмотров

Пример метода Java 8 Streams FlatMap
Я проверял предстоящие Java update , а именно: Java 8 or JDK 8 . Да, я нетерпелив, есть много нового, но есть кое-что, чего я не понимаю, какой-то простой код: final Stream<Integer>stream = Stream.of(1,2,3,4,5,6,7,8,9,10);...
122445 просмотров
schedule 26.07.2023

Ссылки на методы Java 8: предоставить поставщика, способного предоставить параметризованный результат
Я бы хотел использовать java.util.Optional.orElseThrow() с типом Exception, который запрашивает параметр конструктора. Что-то вроде этого: .orElseThrow(MyException::new(someArgument)) // obviously NOT working Есть ли способ создать...
124000 просмотров
schedule 27.08.2023

Поток Java 8 IllegalStateException
Я пытаюсь вычислить простые числа с помощью потоков Java8, но получаю исключение IllegalStateException: поток уже обработан или закрыт. Это мой код: package experimentations.chapter02; import java.util.stream.Stream; public class PrimesStream...
2610 просмотров
schedule 18.05.2024

Группировка Java 8 от одного ко многим
Я хочу научиться использовать синтаксис Java 8 с потоками и немного застрял. Достаточно легко группировать по, когда у вас есть один ключ для каждого значения. Но что, если у меня есть список ключей для каждого значения, и я все еще хочу...
6723 просмотров
schedule 08.04.2023

Stream API и очереди: подписка на BlockingQueue в стиле потока
Допустим, у нас есть очередь BlockingQueue<String> queue= new LinkedBlockingQueue<>(); и какой-то другой поток помещает в него значения, тогда мы читаем это как while (true) { String next = queue.take();...
16674 просмотров
schedule 14.06.2023

Как я могу использовать потоки Java 8 с InputStream?
Я хотел бы обернуть java.util.streams.Stream вокруг InputStream для обработки одного байта или одного символа за раз. Я не нашел простого способа сделать это. Рассмотрим следующее упражнение. Мы хотим подсчитать, сколько раз каждая буква...
27663 просмотров
schedule 26.12.2023

Java 8, метод сбора, создание нового массива и мутация
Я просто хочу уточнить кое-что относительно кода ниже: public static void ageOverTen(final List<Human> man) { final List<Human> byAge = man.stream() .filter(age -> age.getAge() > 10)...
1353 просмотров
schedule 27.02.2024

Прерывание выполнения параллельного потока
Рассмотрим этот код: Thread thread = new Thread(() -> tasks.parallelStream().forEach(Runnable::run)); tasks — это список Runnable, которые должны выполняться параллельно. Когда мы запускаем этот поток, и он начинает свое выполнение, то в...
3766 просмотров

Список фильтрации со значениями, допускающими значение NULL
Я пытаюсь заменить существующий цикл лямбда-выражениями Java. У меня есть простая структура данных, которая выглядит следующим образом: class DbObject{ private Long objectId; private Long basedOnObjectId; //<- this field can be...
1840 просмотров
schedule 22.09.2023

Бесконечный поток и фильтр
Я новичок в Java 8 Stream API и на самом деле не понимаю, почему мой код не работает: import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class StreamExample { public static void main(String[]...
1178 просмотров
schedule 30.08.2023

Эквивалент Scala dropWhile
Я изо всех сил пытаюсь найти способ пропустить некоторые элементы в начале потока в зависимости от предиката. Что-то вроде этого: dropWhile( n -> n < 3, Stream.of( 0, 1, 2, 3, 0, 1, 2, 3, 4 ) ) .forEach( System.out::println ); 3...
2678 просмотров
schedule 22.09.2022

Одиночный поток Java 8‹String› из содержимого папки
Новичок в Java 8 и практикую Streams и Lambdas . Я пытаюсь создать Stream<String> из содержимого файлов папки. Это то, что я безуспешно пробовал: Stream<String> lineStream =...
1483 просмотров
schedule 19.05.2022

Группировать и суммировать объекты, как в SQL, с лямбда-выражениями Java?
У меня есть класс Foo с этими полями: id:int/name;String/targetCost:BigDecimal/actualCost:BigDecimal Я получаю массив объектов этого класса. например.: new Foo(1, "P1", 300, 400), new Foo(2, "P2", 600, 400), new Foo(3, "P3", 30,...
59042 просмотров
schedule 14.05.2024

Как обрабатывать фрагменты файла с помощью java.util.stream
Чтобы познакомиться с потоковым API, я попытался написать довольно простой шаблон. Проблема . Текстовый файл содержит не вложенные блоки текста. Все блоки идентифицируются начальными/конечными шаблонами (например, <start> и <stop>...
653 просмотров

Java 8: применение карты потока и фильтра за один раз
Я пишу парсер для файла в Java 8. Файл читается с использованием Files.lines и возвращает последовательный Stream<String> . Каждая строка сопоставляется с объектом данных Result следующим образом: Result parse(String _line) { //...
8127 просмотров
schedule 01.02.2024

Закрывают ли терминальные операции над потоками источник?
Рассмотрим следующий код: Path directory = Paths.get(/* some directory */); Files.list(directory).forEach(System.out::println); Закрывает ли терминальная операция (например, forEach ) базовый файл, который был открыт? См. соответствующие...
2975 просмотров
schedule 13.04.2024

Самый эффективный способ получить последний элемент потока
Stream не имеет метода last() : Stream<T> stream; T last = stream.last(); // No such method Какой самый элегантный и/или эффективный способ получить последний элемент (или null для пустого потока)?
50732 просмотров
schedule 23.06.2023

Поиск значения перечисления с помощью Java 8 Stream API
Предположим, что существует простое перечисление с именем Type, определенное следующим образом: enum Type{ X("S1"), Y("S2"); private String s; private Type(String s) { this.s = s; } } Поиск правильного...
76268 просмотров