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

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

15
Потік Java 8 з пакетною обробкою
У мене є великий файл, який містить список елементів. Я хотів би створити партію елементів, зробити HTTP-запит з цією партією (усі елементи потрібні як параметри в HTTP-запиті). Я можу це зробити дуже легко за допомогою forциклу, але як любитель Java 8, я хочу спробувати написати це за допомогою фреймворку Stream …

6
Як перевірити, чи потік Java 8 порожній?
Як я можу перевірити, чи Streamпорожнє a , і видати виняток, якщо ні, як нетермінальну операцію? В основному, я шукаю щось еквівалентне коду нижче, але без матеріалізації потоку між ними. Зокрема, перевірка не повинна відбуватися до того, як потік фактично спожитий операцією терміналу. public Stream<Thing> getFilteredThings() { Stream<Thing> stream = …

6
Сортування списку за допомогою stream.sorted () на Java
Мені цікаво сортувати список із потоку. Це код, який я використовую: list.stream() .sorted((o1, o2)->o1.getItem().getValue().compareTo(o2.getItem().getValue())) .collect(Collectors.toList()); Мені чогось не вистачає? Список не сортується. Він повинен сортувати списки за елементом з найменшим значенням. for (int i = 0; i < list.size(); i++) { System.out.println("list " + (i+1)); print(list, i); } І спосіб …


5
Чому я не можу зіставити цілі числа з рядками під час потокової передачі з масиву?
Цей код працює (взято в Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Цей не може бути скомпільований: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA каже мені, що у мене …

7
Різниця між findAny () та findFirst () у Java 8
На цей питання є відповіді на Stack Overflow на російській мові : Які відмінності між findFirst і findAny в Java 8? Я трохи плутають між Stream#findAny()і Stream#findFirst()з StreamAPI в Java 8. Я зрозумів, що обидва повернуть перший відповідний елемент із потоку, наприклад, коли він використовується разом із фільтром? Отже, чому …

6
Чи можна використовувати API Java Stream API для Android API <24?
Я прочитав цю публікацію тут. Але все одно я не можу запустити код, що містить функції Java 8 Stream API, такі як наведені нижче на minSdkVersion &lt;24. List&lt;Car&gt; newCars = cars.stream() .filter(s -&gt; s.getColor().equals("red")) .collect(Collectors.toList()); Це не працює через повідомлення про помилку Для виклику потрібен рівень API 24 (поточний хв …

5
Чому findFirst () кидає NullPointerException, якщо перший знайдений елемент має значення null?
Чому це кидає a java.lang.NullPointerException? List&lt;String&gt; strings = new ArrayList&lt;&gt;(); strings.add(null); strings.add("test"); String firstString = strings.stream() .findFirst() // Exception thrown here .orElse("StringWhenListIsEmpty"); //.orElse(null); // Changing the `orElse()` to avoid ambiguity Перший елемент в stringsє null, що є цілком прийнятним значенням. Крім того, findFirst()повертає необов’язковий , що має ще більше сенсу …

4
Перевірка 'Optional.get ()' без 'isPresent ()'
У мене є такий код пошуку на Java: return getTableViewController().getMe().getColumns().stream().filter($-&gt;Database.equalsColumnName($.getId(), columnId)).findFirst().get(); Я хотів знайти стовпець по імені та повернути перший знайдений. Я розумію, є випадок, коли нічого не знайдено, і це слід обробити, але як? Це те, що вона хоче цією лайкою: 'Optional.get()' without 'isPresent()' check ? Як виправити? Я …

5
Як нам управляти потоком jdk8 для нульових значень
Привіт колеги розробники Java, Я знаю, що тема може бути трохи, in advanceоскільки JDK8 ще не випущений (і поки що не ..), але я читав деякі статті про виразів Лямбда, і особливо частину, пов'язану з новим API колекції, відомим як Stream. Ось приклад, наведений у статті Java Magazine (це алгоритм …

12
Лямбда-Java 8 отримує та видаляє елемент зі списку
Враховуючи список елементів, я хочу отримати елемент із заданою властивістю та видалити його зі списку. Найкраще рішення, яке я знайшов: ProducerDTO p = producersProcedureActive .stream() .filter(producer -&gt; producer.getPod().equals(pod)) .findFirst() .get(); producersProcedureActive.remove(p); Чи можна поєднати get і remove у лямбда-виразі?


14
Java 8, Streams для пошуку дублікатів елементів
Я намагаюся перерахувати повторювані елементи у цілочисельному списку, наприклад, наприклад, List&lt;Integer&gt; numbers = Arrays.asList(new Integer[]{1,2,1,3,4,4}); за допомогою Streams jdk 8. Хто-небудь пробував. Для видалення дублікатів ми можемо використовувати API різного (). Але як щодо пошуку дубльованих елементів? Хто-небудь може мені допомогти?

3
Чому паралельний потік з лямбда-сигналом у статичному ініціалізаторі спричиняє глухий кут?
Я натрапив на дивну ситуацію, коли використання паралельного потоку з лямбда-сигналом у статичному ініціалізаторі триває, здавалося б, назавжди без використання процесора. Ось код: class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -&gt; i).count(); System.out.println("done"); } public static void main(final String[] args) {} } Здається, це мінімальний відтворювальний тест для такої поведінки. …

3
forEach проти forEachЗамовлено в Java 8 Stream
Я розумію, що ці методи відрізняються порядком виконання, але в усьому своєму тесті я не можу досягти іншого виконання замовлення. Приклад: System.out.println("forEach Demo"); Stream.of("AAA","BBB","CCC").forEach(s-&gt;System.out.println("Output:"+s)); System.out.println("forEachOrdered Demo"); Stream.of("AAA","BBB","CCC").forEachOrdered(s-&gt;System.out.println("Output:"+s)); Вихід: forEach Demo Output:AAA Output:BBB Output:CCC forEachOrdered Demo Output:AAA Output:BBB Output:CCC Надайте приклади, коли 2 методи дадуть різні результати.

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