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

150
Зачем нужен комбайнер для метода reduce, преобразующего тип в java 8

Мне сложно полностью понять роль, которую combinerвыполняет reduceметод Streams . Например, следующий код не компилируется: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str) -> accumulatedInt + str.length()); Ошибка компиляции говорит: (несоответствие аргументов; int...

149
Сжатие потоков с использованием JDK8 с использованием лямбды (java.util.stream.Streams.zip)

В JDK 8 с лямбдой b93 в b93 был класс java.util.stream.Streams.zip, который можно использовать для архивирования потоков (это показано в учебном пособии Dhananjay Nene, посвященном изучению Java8-лямбд. Часть 1 ). Эта функция: Создает ленивый и последовательный объединенный поток, элементы которого...

148
Как обеспечить порядок обработки в потоках java8?

Я хочу обрабатывать списки внутри XMLобъекта Java. Я должен обеспечить обработку всех элементов в порядке их получения. Должен ли я поэтому призвать sequentialкаждого streamя использую? list.stream().sequential().filter().forEach() Или достаточно просто использовать поток, если я не использую...

146
Java 8: производительность потоков и коллекций

Я новичок в Java 8. Я до сих пор не знаю API глубоко, но я сделал небольшой неформальный тест, чтобы сравнить производительность нового Streams API и старых добрых коллекций. Тест состоит в фильтрации списка Integer, и для каждого четного числа, вычислить квадратный корень и хранить его в...

146
Можете ли вы разделить поток на два потока?

У меня есть набор данных, представленный потоком Java 8: Stream<T> stream = ...; Я вижу, как отфильтровать его, чтобы получить случайное подмножество - например, Random r = new Random(); PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator(); Stream<T> heads = stream.filter((x) ->...

145
Как в Java 8 преобразовать карту <K, V> в другую карту <K, V> с помощью лямбда?

Я только начал смотреть на Java 8 и попробовать лямбды, я подумал, что попробую переписать очень простую вещь, которую написал недавно. Мне нужно превратить карту строки в столбец в другую карту строки в столбец, где столбец на новой карте является защитной копией столбца на первой карте. Столбец...

144
Java 8 Streams - собрать vs уменьшить

Когда бы вы использовали collect()vs reduce()? Есть ли у кого-нибудь хорошие конкретные примеры, когда однозначно лучше пойти тем или другим путем? Javadoc упоминает, что collect () является изменяемая редукция . Учитывая, что это изменяемое сокращение, я предполагаю, что для этого требуется...

137
В потоках Java действительно заглядывать только для отладки?

Я читаю о потоках Java и открываю для себя новые вещи. Одна из новых вещей, которую я нашел, была peek()функция. Почти все, что я читал в peek, говорит, что его следует использовать для отладки ваших потоков. Что делать, если у меня был поток, где у каждой учетной записи есть имя пользователя, поле...

135
Как я могу получить список из некоторых свойств класса с помощью Java 8 Stream?

У меня есть List<Person>. Мне нужно получить Listот собственности Person. Например, у меня есть Personкласс: class Person { private String name; private String birthDate; public String getName() { return name; } public String getBirthDate() { return birthDate; } Person(String name) {...

133
В чем преимущества потоков в Java перед циклами? [закрыто]

Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 3 года назад . Уточните этот вопрос Меня спросили об этом на интервью, и я...

122
Получить первый элемент, соответствующий критериям

Как получить первый элемент, соответствующий критерию в потоке? Я пробовал это, но не работает this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name)); Этот критерий не работает, метод фильтра вызывается не в классе Stop. public class Train { private final String name; private...

121
Скопируйте поток, чтобы избежать «поток уже обработан или закрыт»

Я хотел бы продублировать поток Java 8, чтобы иметь возможность работать с ним дважды. Я могу collectкак список и получать новые потоки из этого; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other...

119
Получить последний элемент Stream / List в однострочном формате

Как я могу получить последний элемент потока или списка в следующем коде? Где data.careasнаходится List<CArea>: CArea first = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal).findFirst().get(); CArea last = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal)...

103
Соберите последовательные пары из потока

Учитывая такой поток, как { 0, 1, 2, 3, 4 }, как мне наиболее элегантно преобразовать его в заданную форму: { new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) } (при условии, конечно, что я определил класс Pair)? Изменить: это не совсем касается целых или примитивных потоков. Ответ...

101
Java 8 Stream с пакетной обработкой

У меня есть большой файл со списком предметов. Я хотел бы создать пакет элементов, сделать HTTP-запрос с этим пакетом (все элементы необходимы в качестве параметров в HTTP-запросе). Я могу сделать это очень легко с помощью forцикла, но, как любитель Java 8, я хочу попробовать написать это с...

100
Как проверить, пуст ли Java 8 Stream?

Как я могу проверить, является ли a Streamпустым, и вызвать исключение, если это не так, как нетерминальную операцию? По сути, я ищу что-то эквивалентное приведенному ниже коду, но без материализации промежуточного потока. В частности, проверка не должна выполняться до того, как поток будет...