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

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

5
Когда мне следует использовать потоки?
Я просто столкнулся с вопросом при использовании a Listи его 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
Можно ли использовать Java 8 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 (текущий мин. 15): java.util.Collection …

5
Почему findFirst () выдает исключение NullPointerException, если первый найденный элемент имеет значение NULL?
Почему это бросает 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 Первый элемент в stringsIS null, который является вполне приемлемым значением. Более того, findFirst()возвращает Optional , что имеет еще больше смысла для …

5
Как мы должны управлять потоком jdk8 для нулевых значений
Добрый день, друзья Java-разработчики! Я знаю, что эта тема может быть немного, так in advanceкак JDK8 еще не выпущен (и пока не во всяком случае ..), но я читал несколько статей о лямбда-выражениях и, в частности, части, связанной с новым API коллекции, известным как Stream. Вот пример, приведенный в статье …

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

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


14
Java 8, Streams для поиска повторяющихся элементов
Я пытаюсь перечислить повторяющиеся элементы в целочисленном списке, например, List&lt;Integer&gt; numbers = Arrays.asList(new Integer[]{1,2,1,3,4,4}); using Streams of 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 против forEachOrdered в 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 Приведите примеры, когда два метода будут давать разные результаты.

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