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

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

3
Операції проміжного потоку не оцінюються за підрахунком
Здається, у мене виникають проблеми з розумінням того, як Java створює потокові операції в трубопровід потоку. При виконанні наступного коду public static void main(String[] args) { StringBuilder sb = new StringBuilder(); var count = Stream.of(new String[]{"1", "2", "3", "4"}) .map(sb::append) .count(); System.out.println(count); System.out.println(sb.toString()); } На консолі друкується лише друк 4. …
33 java  java-stream 

2
Як я можу пропустити обмеження (номер) дзвінка потоком, коли число дорівнює 0?
У мене є деякий код Java, який забезпечує об’єкти з items. Він обмежує їх на основі maxNumber: items.stream() .map(this::myMapper) .filter(item -> item != null) .limit(maxNumber) .collect(Collectors.toList()); Вона працює належним чином, але питання в цьому: Чи є спосіб пропустити обмеження, коли maxNumber == 0? Я знаю, що міг би це зробити: …


3
У паралельних нескінченних потоків Java не вистачає пам'яті
Я намагаюся зрозуміти, чому наведена нижче програма Java дає OutOfMemoryError, а відповідна програма без .parallel()цього не дає. System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); У мене є два питання: Який запланований вихід цієї програми? Без .parallel()цього здається, що це просто виводить, …

5
Як створити карту з різними значеннями з карти (і використовувати праву клавішу за допомогою BinaryOperator)?
У мене є карта, Map<K, V>і моя мета - видалити повторювані значення і знову вивести ту саму структуру Map<K, V>. У разі дублюється значення знайдено, то необхідно вибрати один ключ ( k) з двох клавіш ( k1і k1) , які тримають ці цінності, з цієї причини, припустимо , що BinaryOperator<K>дає …

2
Як зрозуміти цей метод Java 8 Stream collection ()?
Я намагався перетворити масив int в List, і я взяв незнайомий маршрут використання Java 8 Stream і придумав це Arrays.stream(arr).boxed().collect(Collectors.toList()); У мене все ще є труднощі повністю зрозуміти цю лінію, в основному, Чому Collectors.toList()в цьому випадку повертається інтерфейс ArrayList<Integer>реалізації List? Чому ні LinkedList<Integer>чи будь-який інший загальний клас, що відповідає Listінтерфейсу? …

2
Чи можете ви збалансувати незбалансований Spliterator невідомого розміру?
Я хочу використовувати Streamпаралельну обробку гетерогенного набору віддалено зберігаються файлів JSON невідомого числа (кількість файлів наперед не відома). Файли можуть різнитися за розмірами, від 1 запису JSON на файл до 100 000 записів у деяких інших файлах. Запис JSON в цьому випадку означає самодостатній об'єкт JSON, представлений як один рядок …

3
Паралельний потік Java - порядок виклику методу паралельного () [закритого]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 3 дні тому . AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record -> new Record(recordNumber.incrementAndGet(), record)) .parallel() .filter(record …
11 java  java-stream 

3
Спеціальне сортування таким чином, що А надходить до 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
Як я показав нижче, я знайшов тест про API API 8 для потоку Java 8 Stream Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); Вихід є Fred Jim Мене бентежить, як працює цей потік? Мій очікуваний результат повинен бути Fred Jim Sheila Метод peek () - це проміжна операція, і …

8
Видаліть перший (з нульовим індексом) елемент з потоку умовно
У мене є такий код: Stream<String> lines = reader.lines(); Якщо рядок кулака дорівнює, "email"я хочу видалити перший рядок із потоку. Для інших рядків з потоку мені ця перевірка не потрібна. Як я міг це зробити? PS Звичайно, я можу перетворити його до списку, а потім використовувати стару школу для циклу, …

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може не відображати правильно Long; може виникнути якесь питання. Long::valueOfможе спричинити …

3
Потік Java: фільтр із кількох діапазонів
Я намагаюся фільтрувати ресурс і виключати деякі елементи на основі поля. Щоб виключити, у мене є набір (який містить ідентифікатор, який потрібно виключити) та список (він містить безліч діапазонів ідентифікаторів, які потрібно виключити). Я написав нижченаведену логіку і мене не влаштовує логіка 2-го фільтра. Чи є кращий спосіб, як ми …

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