Запитання з тегом «java-stream»

Використовуйте цей тег для питань, пов’язаних із використанням API Stream. Він був введений в Java 8 і підтримує операції в функціональному стилі над потоками значень, такими як фільтр-карта-зменшення трубопроводів для колекцій.

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 та лямбдами легко переглядати колекції як потоки, а також використовувати паралельний потік так само просто. Два приклади з Документів , другий з використанням paralStream: 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; …

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

8
Java 8 Iterable.forEach () проти циклу foreach
На цей питання є відповіді на Stack Overflow на російському : Цикл передбачити проти 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()); На жаль, …

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; …

9
Перетворити Iterable в Stream за допомогою Java 8 JDK
У мене є інтерфейс, який повертається java.lang.Iterable&lt;T&gt;. Я хотів би маніпулювати цим результатом за допомогою Java 8 Stream API. Однак Iterable не може "потокувати". Будь-яка ідея, як використовувати Iterable як Stream, не перетворюючи його на List?

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викидає a, NullPointerExceptionякщо одне зі значень "null". Я не розумію такої поведінки, карти можуть містити нульові вказівники як значення без проблем. Чи є вагома причина, чому значення не можуть бути нульовими Collectors.toMap? Крім того, чи є приємний спосіб виправлення цього Java 8, або я повинен повернутися до старого …

17
Як я можу викидати ПРОВЕРЕНІ винятки з потоків Java 8?
Як я можу викидати ПРОВЕРЕНІ винятки з потоків / лямбдав 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()метод, викладений вище, кидає …

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.