Вопросы с тегом «java-stream»

Используйте этот тег для вопросов, связанных с использованием Stream API. Он был введен в Java 8 и поддерживает операции в функциональном стиле над потоками значений, такими как конвейеры filter-map-Reduce для коллекций.

9
Есть ли в Java SE 8 пары или кортежи?
Я играю с ленивыми функциональными операциями в Java SE 8, и я хочу mapиндексировать iпару / кортеж (i, value[i]), затем filterна основе второго value[i]элемента и, наконец, выводить только индексы. Должен ли я все еще страдать так: Что эквивалентно паре C ++ <L, R> в Java? в смелую новую эпоху лямбд …

9
Как использовать лямбду Java8 для сортировки потока в обратном порядке?
Я использую Java-лямбду для сортировки списка. как я могу отсортировать его в обратном порядке? Я видел этот пост , но я хочу использовать Java 8 лямбда. Вот мой код (я использовал * -1) как взломать Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, File o2) { …

4
Какие эквиваленты Java 8 Stream.collect доступны в стандартной библиотеке Kotlin?
В Java 8 есть Stream.collectвозможность объединения по коллекциям. В Kotlin, это не существует таким же образом, за исключением, может быть, как набор функций расширения в stdlib. Но не ясно, каковы эквивалентности для разных вариантов использования. Например, в верхней части JavaDocCollectors находятся примеры, написанные для Java 8, и при переносе их …

5
Добавление BigDecimals с помощью потоков
У меня есть коллекция BigDecimals (в этом примере, а LinkedList), которые я хотел бы добавить вместе. Возможно ли использовать потоки для этого? Я заметил, что у Streamкласса есть несколько методов Stream::mapToInt Stream::mapToDouble Stream::mapToLong У каждого из которых есть удобный sum()метод. Но, как мы знаем, floatи doubleарифметика почти всегда плохая идея. …

7
Java 8: Как мне работать с методами исключения в потоках?
Предположим, у меня есть класс и метод class A { void foo() throws Exception() { ... } } Теперь я хотел бы вызывать foo для каждого экземпляра, Aдоставляемого потоком, например: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Вопрос: Как правильно обработать исключение? Код не …

8
Добавление двух потоков Java 8 или дополнительного элемента в поток
Я могу добавить потоки или дополнительные элементы, например: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); И я могу добавлять новые вещи, как я, как это: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Но это безобразно, потому что concatстатично. Если бы concatэто был …

9
Должен ли я вернуть коллекцию или поток?
Предположим, у меня есть метод, который возвращает представление только для чтения в список участников: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Далее предположим, что все, что делает клиент, это …

4
Можно ли привести поток в Java 8?
Можно ли привести поток в Java 8? Скажем, у меня есть список объектов, я могу сделать что-то вроде этого, чтобы отфильтровать все дополнительные объекты: Stream.of(objects).filter(c -> c instanceof Client) Однако после этого, если я хочу что-то сделать с клиентами, мне нужно разыграть каждого из них: Stream.of(objects).filter(c -> c instanceof Client) …
160 java  java-8  java-stream 


26
Java 8 поток в обратном порядке
Общий вопрос: как правильно реверсировать поток? Предполагая, что мы не знаем, из какого типа элементов состоит этот поток, каков общий способ реверсирования любого потока? Конкретный вопрос: IntStreamпредоставляет метод диапазона для генерации целых чисел в определенном диапазоне IntStream.range(-range, 0), теперь, когда я хочу изменить его, диапазон переключения с 0 на отрицательный …

4
Зачем нужен комбайнер для метода reduce, преобразующего тип в java 8
Мне сложно полностью понять роль, которую combinerвыполняет reduceметод Streams . Например, следующий код не компилируется: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str) -> accumulatedInt + str.length()); Ошибка компиляции говорит: (несоответствие аргументов; int не может быть преобразован в java.lang.String) но этот код компилируется: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, …
150 java  java-8  java-stream 

14
Сжатие потоков с использованием JDK8 с использованием лямбды (java.util.stream.Streams.zip)
В JDK 8 с лямбдой b93 в b93 был класс java.util.stream.Streams.zip, который можно использовать для архивирования потоков (это показано в учебном пособии Dhananjay Nene, посвященном изучению Java8-лямбд. Часть 1 ). Эта функция: Создает ленивый и последовательный объединенный поток, элементы которого являются результатом объединения элементов двух потоков. Однако в b98 это …

2
Как обеспечить порядок обработки в потоках java8?
Я хочу обрабатывать списки внутри XMLобъекта Java. Я должен обеспечить обработку всех элементов в порядке их получения. Должен ли я поэтому призвать sequentialкаждого streamя использую? list.stream().sequential().filter().forEach() Или достаточно просто использовать поток, если я не использую параллелизм? list.stream().filter().forEach()
148 java  java-8  java-stream 

10
Можете ли вы разделить поток на два потока?
У меня есть набор данных, представленный потоком Java 8: Stream<T> stream = ...; Я вижу, как отфильтровать его, чтобы получить случайное подмножество - например, Random r = new Random(); PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator(); Stream<T> heads = stream.filter((x) -> (coin.nextInt() == 0)); Я также вижу, как можно уменьшить этот поток, …
146 java  java-8  java-stream 

4
Java 8: производительность потоков и коллекций
Я новичок в Java 8. Я до сих пор не знаю API глубоко, но я сделал небольшой неформальный тест, чтобы сравнить производительность нового Streams API и старых добрых коллекций. Тест состоит в фильтрации списка Integer, и для каждого четного числа, вычислить квадратный корень и хранить его в результате Listиз Double. …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.