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

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

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

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

4
Які еквіваленти Java 8 Stream.collect доступні в стандартній бібліотеці Котліна?
У Java 8 є те, Stream.collectщо дозволяє агрегувати колекції. У Котліна це не існує аналогічно, як, можливо, як набір функцій розширення в stdlib. Але незрозуміло, що таке еквівалентність для різних випадків використання. Наприклад, у верхній частині JavaDoc дляCollectors є приклади, написані для Java 8, і при перенесенні їх на Kolin …

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 …

14
Поєднання потоків за допомогою JDK8 з лямбда (java.util.stream.Streams.zip)
У JDK 8 з лямбда-b93 був клас java.util.stream.Streams.zip в b93, який можна було використовувати для поштових потоків (це проілюстровано у підручнику « Дослідження Java8 Lambdas». Частина 1 від Dhananjay Nene ). Ця функція: Створюється лінивий і послідовний поєднаний Потік, елементи якого є результатом поєднання елементів двох потоків. Однак у 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 


7
Потоки Java 8 - збирайте та зменшуйте
Коли ви використовуєте collect()vs reduce()? Хтось має хороші, конкретні приклади, коли, безумовно, краще йти тим чи іншим шляхом? Згадки Javadoc, які збирають (), - це змінне зменшення . Зважаючи на те, що це зменшене скорочення, я припускаю, що це потребує синхронізації (внутрішньо), що, в свою чергу, може завдати шкоди продуктивності. …
143 java  java-8  java-stream 

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