powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Iterator To Stream
10 сообщений из 10, страница 1 из 1
Iterator To Stream
    #39448447
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как можно переделать следующий кусок на stream

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        Iterator<Order> iter = orders.iterator();
        while (iter.hasNext()) {
            Order order = iter.next();
            if (order.getCurrencies() == null || order.getCurrencies().isEmpty()) {
                iter.remove();
                continue;
            }
            for (Currencies currencies : order.getCurrencies()) {
                if (currencies.getSum() == null) {
                    iter.remove();
                    continue;
                }
            }
        }



Первый я переделал, а как можно совместить со вторым?
Или это отдельный фильтр надо?

orders = orders.stream().filter(pl -> pl.getCurrencies() == null || pl.getCurrencies().isEmpty()).collect(Collectors.toList());
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448449
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То собствеено вопрос
Как в stream filter отрабатывать вложенные циклы for
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448488
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iterator оборачивается в Stream через Spliterator
https://docs.oracle.com/javase/8/docs/api/java/util/Spliterators.html
Но я ещё бы посмотрел откуда этот Iterator нарисовался, потому как есть и другие методы. Например, Iterable.spliterator().
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448493
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо такой херни
Код: java
1.
2.
3.
            
if (order.getCurrencies() == null || order.getCurrencies().isEmpty()) {
if (currencies.getSum() == null) {


Стоит писать так:
Код: java
1.
2.
3.
            
if (order.hasCurrencies()) {
if (currencies.hasSum()) {



Можно было бы и Optional прикрутить, если бы он не был таким корявым в Java 8
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448500
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz:
Код: java
1.
2.
3.
            
if (order.hasCurrencies()) {
if (currencies.hasSum()) {



А если подумать ещё немного об инкапсуляции, то стоило оставить только
Код: java
1.
if (order.hasCurrenciesWithSum()) {
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448502
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-То собствеено вопрос
Как в stream filter отрабатывать вложенные циклы for
В данном случае никак.
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448507
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-
Код: java
1.
orders = orders.stream().filter(pl -> pl.getCurrencies() == null || pl.getCurrencies().isEmpty()).collect(Collectors.toList());



Код: java
1.
orders.removeIf(o -> !o.hasCurrenciesWithSum());



Но я бы написал так:
Код: java
1.
orders.removeIf(Order::isInvalid);
...
Рейтинг: 0 / 0
Iterator To Stream
    #39448924
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы уточнить у вас

Вот я передела так, здесь правильно?

Код: java
1.
return orders.stream().filter(pl -> pl.getCurrencies().stream().allMatch(cur -> cur.getSum() != null)).collect(Collectors.toList());
...
Рейтинг: 0 / 0
Iterator To Stream
    #39449055
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а тест запустить религия не позволяет?

Как всегда Blazkowicz не поленился, все расписал, а ему в ответ - да! точно, все понял!!! ну только я свой вариант оставлю.. Железного терпения человек
...
Рейтинг: 0 / 0
Iterator To Stream
    #39449185
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ника тест запустить религия не позволяет?

Как всегда Blazkowicz не поленился, все расписал, а ему в ответ - да! точно, все понял!!! ну только я свой вариант оставлю.. Железного терпения человек
Тест запустил и возник вопрос...
Спросил, потому, как сделал до того как прочитал ответ...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Iterator To Stream
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]