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

240
Использование Java 8 необязательно с Stream :: flatMap

Новая потоковая среда Java 8 и ее друзья создают очень лаконичный Java-код, но я столкнулся с на первый взгляд простой ситуацией, которую сложно сделать лаконично. Рассмотрим List<Thing> thingsи метод Optional<Other> resolve(Thing thing). Я хочу отобразить Things на...

239
Почему Java Streams разовые?

В отличие от C # IEnumerable, где конвейер выполнения может выполняться столько раз, сколько мы хотим, в Java поток может быть «повторен» только один раз. Любой вызов терминальной операции закрывает поток, делая его непригодным для использования. Эта «особенность» отнимает много энергии. Я думаю,...

235
Java 8 Streams: несколько фильтров против сложных условий

Иногда вы хотите отфильтровать Streamнесколько условий: myList.stream().filter(x -> x.size() > 10).filter(x -> x.isCool()) ... или вы можете сделать то же самое со сложным условием и одним filter : myList.stream().filter(x -> x.size() > 10 && x -> x.isCool()) ... Я...

230
Фильтр Java Stream на 1 и только 1 элемент

Я пытаюсь использовать Java 8 Streams, чтобы найти элементы в LinkedList. Однако я хочу гарантировать, что существует одно и только одно соответствие критериям фильтра. Возьми этот код: public static void main(String[] args) { LinkedList<User> users = new LinkedList<>(); users.add(new...

215
.Min () и .max () потока Java 8: почему это компилируется?

Примечание: этот вопрос возник из мертвой ссылки, которая была предыдущим вопросом SO, но здесь идет ... Посмотрите этот код ( примечание: я знаю, что этот код не будет «работать» и его Integer::compareследует использовать - я просто извлек его из связанного вопроса ): final ArrayList...

210
Java8: от HashMap <X, Y> до HashMap <X, Z> с использованием Stream / Map-Reduce / Collector

Я знаю, как "преобразовать" простую Java List из Y-> Z, то есть: List<String> x; List<Integer> y = x.stream() .map(s -> Integer.parseInt(s)) .collect(Collectors.toList()); Теперь я хотел бы сделать то же самое с картой, то есть: INPUT: { "key1" -> "41", // "41" and "42" "key2"...

206
Использование Java 8 для преобразования списка объектов в строку, полученную из метода toString ()

В Java 8 появилось много полезных новых вещей. Например, я могу перебирать поток по списку объектов, а затем суммировать значения из определенного поля Objectэкземпляров. Например public class AClass { private int value; public int getValue() { return value; } } Integer sum =...

197
Java 8 Stream и работа с массивами

Я только что открыл новые возможности потока Java 8. Исходя из Python, мне было интересно, есть ли теперь удобный способ выполнять операции над массивами, такие как суммирование, умножение двух массивов "питонным" способом?...

188
Java 8 - лучший способ преобразовать список: карта или foreach?

У меня есть список, в myListToParseкотором я хочу отфильтровать элементы и применить метод для каждого элемента, и добавить результат в другой список myFinalList. С Java 8 я заметил, что могу сделать это двумя разными способами. Я хотел бы знать более эффективный путь между ними и понять, почему...

187
Ограничить поток предикатом

Существует ли потоковая операция Java 8, которая ограничивает (потенциально бесконечный) Streamдо тех пор, пока первый элемент не будет соответствовать предикату? В Java 9 мы можем использовать, takeWhileкак в примере ниже, чтобы напечатать все числа меньше 10. IntStream .iterate(1, n -> n + 1)...

185
Есть ли в Java SE 8 пары или кортежи?

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

181
Как использовать лямбду Java8 для сортировки потока в обратном порядке?

Я использую Java-лямбду для сортировки списка. как я могу отсортировать его в обратном порядке? Я видел этот пост , но я хочу использовать Java 8 лямбда. Вот мой код (я использовал * -1) как взломать Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))...

181
Какие эквиваленты Java 8 Stream.collect доступны в стандартной библиотеке Kotlin?

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

178
Добавление BigDecimals с помощью потоков

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

172
Java 8: Как мне работать с методами исключения в потоках?

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

168
Добавление двух потоков 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),...

160
Можно ли привести поток в Java 8?

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

153
Java 8 поток в обратном порядке

Общий вопрос: как правильно реверсировать поток? Предполагая, что мы не знаем, из какого типа элементов состоит этот поток, каков общий способ реверсирования любого потока? Конкретный вопрос: IntStreamпредоставляет метод диапазона для генерации целых чисел в определенном диапазоне...