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

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

2
Можете ли вы восстановить баланс несбалансированного Spliterator неизвестного размера?
Я хочу использовать Streamдля распараллеливания обработки разнородного набора JSON-файлов с удаленным хранением неизвестного числа (количество файлов не известно заранее). Размер файлов может варьироваться от 1 записи JSON на файл до 100 000 записей в некоторых других файлах. Запись JSON в этом случае означает автономный объект JSON, представленный одной строкой в …

3
Параллельный поток Java - порядок вызова метода parallel () [closed]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 дня назад . AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record -> new Record(recordNumber.incrementAndGet(), …
11 java  java-stream 

3
Выборочная сортировка таким образом, что A предшествует a, а B - перед b
У меня есть список цветов, как это: Розовый, синий, красный, синий, серый, зеленый, фиолетовый, черный ... и т. Д. List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); Есть некоторые промежуточные операции, такие как фильтрация цветов фруктов, теперь у меня остались отфильтрованные результаты, в которых я хочу отсортировать …

2
Очистка списка данных в Java8
Для очистки списка данных я создал метод, который принимает список данных и список операций очистки, которые необходимо выполнить. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } Проблема в том, что мы …

4
Как peek () и allMatch () работают вместе в Java 8 Stream API
Я нашел тест о Java 8 Stream API метода просмотра, как показано ниже Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); Выход Fred Jim Я запутался, как работает этот поток? Мой ожидаемый результат должен быть Fred Jim Sheila Метод peek () является промежуточной операцией и обрабатывает каждый элемент в Stream. …

8
Условно удалить первый (с нулевым индексом) элемент из потока
У меня есть следующий код: Stream<String> lines = reader.lines(); Если первая строка равна, "email"я хочу удалить первую строку из потока. Для других строк из потока мне не нужна эта проверка. Как я мог заболеть? PS Конечно, я могу преобразовать его в список, затем использовать old school for loop, но в …

6
Как найти самую последнюю дату по заданному значению карты в Java
У меня есть хэш-карта со значениями ниже, в значениях у меня дата в качестве строкового типа данных. Я хотел бы сравнить все даты, которые доступны на карте, и извлечь только одно значение ключа, которое имеет очень недавнюю дату. Я хотел бы сравнить со значениями, а не ключами. Я включил код …

4
Обработка исключений с помощью потоков
У меня есть Map<String,List<String>>и хочу, чтобы он превратился, Map<String,List<Long>>потому что каждый Stringв списке представляет Long: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); Моя главная проблема заключается в том, что каждый из них Stringне может правильно представлять a Long; может быть какая-то проблема. …

4
Эффективный способ перебора и копирования значений HashMap
Я хочу конвертировать: Map<String, Map<String, List<Map<String, String>>>> inputMap чтобы: Map<String, Map<String, CustomObject>> customMap inputMapпредоставляется в конфиге и готов, но мне нужно customMapотформатировать. CustomObject будет получен из List<Map<String, String>>использования нескольких строк кода в функции. Я попробовал нормальный способ итерации входной карты и копирования значений ключей в customMap. Есть ли эффективный способ …

3
Java Stream: фильтр с несколькими диапазонами
Я пытаюсь отфильтровать ресурс и исключить некоторые элементы на основе поля. Для исключения у меня есть набор (который содержит идентификатор, который должен быть исключен) и список (он содержит несколько диапазонов идентификаторов, которые необходимо исключить). Я написал приведенную ниже логику, и меня не устраивает 2-я логика фильтра. Есть ли лучший способ …

4
Получить сотрудников до и после определенной даты присоединения из списка сотрудников с потоком Java
Я имею Listв Employeeс с различными датами присоединения. Я хочу получить сотрудников до и после определенной даты присоединения из списка с помощью потоков. я попробовал следующий код, List<Employee> employeeListAfter = employeeList.stream() .filter(e -> e.joiningDate.isAfter(specificDate)) .collect(Collectors.toList()); List<Employee> employeeListBefore = employeeList.stream() .filter(e -> e.joiningDate.isBefore(specificDate)) .collect(Collectors.toList()); class Employee{ int id; String name; LocalDate …

5
Как создать несколько потоков для каждого элемента запроса
Я пытаюсь обработать код ниже, используя многопоточность на уровне заказа. List<String> orders = Arrays.asList("order1", "order2", "order3", "order4", "order1"); Текущее последовательное исполнение: orders.stream().forEach(order -> { rules.forEach(rule -> { finalList.add(beanMapper.getBean(rule) .applyRule(createTemplate.apply(getMetaData.apply(rule), command), order)); }); }); Я пытался с помощью: orders.parallelStream().forEach(order -> {}} // code snippet. Но это меняет порядок rules.forEach (rule -> …

3
Как копировать большие файлы данных построчно?
У меня есть CSVфайл 35 ГБ . Я хочу прочитать каждую строку и записать строку в новый CSV, если он соответствует условию. try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) { try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) { br.lines().parallel() .filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world .forEach(line -> { writer.write(line + "\n"); …

3
Возвращение списка по умолчанию, если список пуст, используя java 8 Streams?
Есть ли способ, чтобы нижеприведенное можно было выполнять как один набор потоковых операций, вместо того, чтобы явно проверять, является ли рекомендуемый продукт пустым, затем возвращать список по умолчанию, иначе возвращать отфильтрованный список ? public List<Product> getRecommendedProducts() { List<Product> recommendedProducts = this.newProducts .stream() .filter(isAvailable) .collect(Collectors.toList()); if (recommendedProducts.isEmpty()) { return DEFAULT_PRODUCTS; } …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.