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

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

21
Список Java 8 <V> на карту <K, V>
Я хочу перевести Список объектов в Карту, используя потоки и лямбды Java 8. Вот как я бы написал это на Java 7 и ниже. private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;String, Choice&gt; hashMap = new HashMap&lt;&gt;(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; } …



6
Должен ли я всегда использовать параллельный поток, когда это возможно?
С Java 8 и лямбдами легко перебирать коллекции как потоки, и так же просто использовать параллельный поток. Два примера из документов , второй с использованием parallelStream: myShapesCollection.stream() .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); myShapesCollection.parallelStream() // &lt;-- This one uses parallel .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); …

6
Найти первый элемент по предикату
Я только начал играть с лямбдами Java 8, и я пытаюсь реализовать некоторые вещи, к которым я привык в функциональных языках. Например, большинство функциональных языков имеют какую-то функцию поиска, которая работает с последовательностями, или списки, которые возвращают первый элемент, для которого существует предикат true. Единственный способ добиться этого в Java …
504 java  java-8  java-stream 

8
Java 8 Iterable.forEach () против цикла foreach
На этот вопрос есть ответы на Переполнение стека на русском : Цикл foreach против Iterable.foreach в Java 8: что лучше? Что из следующего является лучшей практикой в ​​Java 8? Java 8: joins.forEach(join -&gt; mIrc.join(mSession, join)); Java 7: for (String join : joins) { mIrc.join(mSession, join); } У меня есть много …

27
Java 8 Различается по свойству
В Java 8, как я могу отфильтровать коллекцию, используя StreamAPI, проверив отличимость свойства каждого объекта? Например, у меня есть список Personобъектов, и я хочу удалить людей с тем же именем, persons.stream().distinct(); Будет использовать проверку равенства по умолчанию для Personобъекта, поэтому мне нужно что-то вроде, persons.stream().distinct(p -&gt; p.getName()); К сожалению, distinct()метод …

14
Получение списка из java.util.stream.Stream в Java 8
Я играл с лямбдами Java 8, чтобы легко фильтровать коллекции. Но я не нашел краткий способ получить результат в виде нового списка в том же утверждении. Вот мой самый лаконичный подход: List&lt;Long&gt; sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List&lt;Long&gt; targetLongList = new ArrayList&lt;&gt;(); sourceLongList.stream().filter(l -&gt; l …

9
Преобразование Iterable в Stream с использованием Java 8 JDK
У меня есть интерфейс, который возвращается java.lang.Iterable&lt;T&gt;. Я хотел бы манипулировать этим результатом с помощью Java 8 Stream API. Однако Iterable не может «течь». Любая идея, как использовать Iterable в качестве потока без преобразования его в список?

14
Пользовательский пул потоков в параллельном потоке Java 8
Можно ли указать пользовательский пул потоков для параллельного потока Java 8 ? Я не могу найти это нигде. Представьте, что у меня есть серверное приложение, и я хотел бы использовать параллельные потоки. Но приложение большое и многопоточное, поэтому я хочу разделить его. Я не хочу медленное выполнение задачи в одном …

22
Есть ли краткий способ перебора потока с индексами в Java 8?
Есть ли краткий способ перебора потока, имея доступ к индексу в потоке? String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"}; List&lt;String&gt; nameList; Stream&lt;Integer&gt; indices = intRange(1, names.length).boxed(); nameList = zip(indices, stream(names), SimpleEntry::new) .filter(e -&gt; e.getValue().length() &lt;= e.getKey()) .map(Entry::getValue) .collect(toList()); что выглядит довольно обидно по сравнению с приведенным там примером LINQ string[] …
382 java  java-8  java-stream 


12
Java 8 NullPointerException в Collectors.toMap
Java 8 Collectors.toMapвыбрасывает, NullPointerExceptionесли одно из значений 'null'. Я не понимаю этого поведения, карты могут содержать нулевые указатели в качестве значения без каких-либо проблем. Есть ли веская причина, почему значения не могут быть нулевыми для Collectors.toMap? Кроме того, есть хороший способ исправить это в Java 8, или я должен вернуться …

4
В чем разница между Collection.stream (). ForEach () и Collection.forEach ()?
Я понимаю, что с помощью .stream()я могу использовать цепные операции, такие как .filter()или использовать параллельный поток. Но какая между ними разница, если мне нужно выполнить небольшие операции (например, распечатать элементы списка)? collection.stream().forEach(System.out::println); collection.forEach(System.out::println);

17
Как я могу выбросить CHECKED исключения из потоков Java 8?
Как я могу выбросить CHECKED исключения из потоков / лямбд Java 8? Другими словами, я хочу сделать такой код: public List&lt;Class&gt; getClasses() throws ClassNotFoundException { List&lt;Class&gt; classes = Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String") .map(className -&gt; Class.forName(className)) .collect(Collectors.toList()); return classes; } Этот код не компилируется, так как Class.forName()метод выше выдает ClassNotFoundException, который проверяется. …

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