powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream API
25 сообщений из 174, страница 1 из 7
Stream API
    #39934666
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


Код: java
1.
2.
3.
4.
5.
list.stream
.filter()

????
()->throw new Exeption
...
Рейтинг: 0 / 0
Stream API
    #39934693
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Опять теория?
Фильтруем в пустоту?
Обычно фильтруют в конечную переменную.
Потом ее и проверяй.
То есть добавь сюда код БЛ, а не пример из книги или снов.
...
Рейтинг: 0 / 0
Stream API
    #39934695
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно иф добавить внутрь фильтра ))) и кинуть там эксепшн. правда вроде в жаве были какие то особенности на эту тему.

в скале я б сделал матч кейс. что впрочем, та же хрень.
...
Рейтинг: 0 / 0
Stream API
    #39934704
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


Код: java
1.
2.
3.
4.
5.
list.stream
.filter()

????
()->throw new Exeption



Например так <:o)

Код: java
1.
2.
3.
4.
5.
6.
7.
public class StreamApiException {
    private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);

    public void test() {
        assert(list.stream().filter(i -> i == 1).count() != 1L);
    }
}
...
Рейтинг: 0 / 0
Stream API
    #39934782
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
+1
В чем проблема у ТС я не увидел.
...
Рейтинг: 0 / 0
Stream API
    #39934784
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Код: java
1.
count() != 1L)

щаз скажет что буква L лишняя.
...
Рейтинг: 0 / 0
Stream API
    #39934786
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
asv79
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


Код: java
1.
2.
3.
4.
5.
list.stream
.filter()

????
()->throw new Exeption



Например так <:o)

Код: java
1.
2.
3.
4.
5.
6.
7.
public class StreamApiException {
    private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);

    public void test() {
        assert(list.stream().filter(i -> i == 1).count() != 1L);
    }
}


и где тут экспешн кидается если стрим больше 1?
и условие читай - лист всего 1 ,второй раз из стрима в лист нельзя и ифы нелья
так то я бы сделал filtr-collect(Collections.Singltone).orElstThrow(()->retrun Exeption)
...
Рейтинг: 0 / 0
Stream API
    #39934787
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
можно иф добавить внутрь фильтра ))) и кинуть там эксепшн. правда вроде в жаве были какие то особенности на эту тему.

в скале я б сделал матч кейс. что впрочем, та же хрень.

иф нельзя я же написал,как будто я сам не знаю что ифом проверить и все кек)
но вот нельзя
...
Рейтинг: 0 / 0
Stream API
    #39934800
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
второй раз из стрима в лист нельзя
он замерил Результат стрима.
Такого условия не было.
...
Рейтинг: 0 / 0
Stream API
    #39934810
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.
...
Рейтинг: 0 / 0
Stream API
    #39934823
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.

там все просто нас заставляют придерживаться общей стилистики кода
например если в валидаторе нет ифов ,а все обренутов в опшиналы,значит надо делать так же
проблема возникла в том что обычно тут проверка идет так

лист-stream-filtr-findFirst-orElseThrow

фильтруем лист по какому то условию и бац - два элемента у одного проходит условие у другого нет- я должен выдать исключение - но не могу,так как он метод найдет второй вариант - где услвия ок)
сечешь теперь?))

в кейсе это идет проверка кода страны двух адресов заемщика - фактического и регистрации
тоесть если какой то из этих кодов не 643 я должен записать в лог ошибку и кинуть эксепшн
...
Рейтинг: 0 / 0
Stream API
    #39934826
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
там все просто нас заставляют придерживаться общей стилистики кода
это хорошо
asv79
например если в валидаторе нет ифов ,а все обренутов в опшиналы,значит надо делать так же
этот пример какое отношение к стримам?
Напиши - "перед едой мыть руки".

asv79
фильтруем лист по какому то условию и бац - два элемента у одного проходит условие у другого нет
пример где? Реальный?
Ты выше сказал нечто странное.
Пример mad_nazgul видем?
Сделай такой же!
...
Рейтинг: 0 / 0
Stream API
    #39934828
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Зы.
Я твой лично код давно не видел. В основном разговоры про чужой код.
Ждем.
...
Рейтинг: 0 / 0
Stream API
    #39934833
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

там все просто нас заставляют придерживаться общей стилистики кода
Это в банках TOP-1 заставляют ребусы писать?

Код: java
1.
2.
3.
4.
5.
6.
7.
List<String> l = Arrays.asList("1");
Object anchor = new Object();
Stream.concat(
        l.stream(),
        Stream.of(anchor, new Object())
).skip(1).limit(1).findFirst().filter(e -> e != anchor)
        .orElseThrow(RuntimeException::new);
...
Рейтинг: 0 / 0
Stream API
    #39934834
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В операциях по стримам можно сохранить/передать состояние только через общую переменну, reduce или collect. Если надо сделать на стримах, то подходит вроде только collect. Сделать через него можно, но это то еще извращение.
...
Рейтинг: 0 / 0
Stream API
    #39934862
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в идее стримов такой случай тебе не нужен а если нужен ты чот не то делаешь.
...
Рейтинг: 0 / 0
Stream API
    #39934864
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исключительно ради огромной любви к извращениям:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));
...
Рейтинг: 0 / 0
Stream API
    #39934872
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
в идее стримов такой случай тебе не нужен а если нужен ты чот не то делаешь.
да. Он юз кейс странно описал.
Поэтому и просил у него код.
Он этого в жизни не делал))))
...
Рейтинг: 0 / 0
Stream API
    #39934886
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79

там все просто нас заставляют придерживаться общей стилистики кода
Это в банках TOP-1 заставляют ребусы писать?

Код: java
1.
2.
3.
4.
5.
6.
7.
List<String> l = Arrays.asList("1");
Object anchor = new Object();
Stream.concat(
        l.stream(),
        Stream.of(anchor, new Object())
).skip(1).limit(1).findFirst().filter(e -> e != anchor)
        .orElseThrow(RuntimeException::new);


не прокатит такое
создается дополнительный объект ,-я таким же успехом я этот стрим засну обратно в лист и положу туда синглтон ,а так как у нас две позиции - то выбросится исключение
тут идея в том чтобы не засорять память лишними объектами
пс.а то что ты выше привел делает reduce(),но оно мне не подходит
...
Рейтинг: 0 / 0
Stream API
    #39934887
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
Исключительно ради огромной любви к извращениям:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));


ты создаешь новый объект - тем самым нарушая условия- то что ты выше написал делается в одну строчку collect(Collections.singletone)
...
Рейтинг: 0 / 0
Stream API
    #39934889
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
нет
пример где? Реальный?
Ты выше сказал нечто странное.
Пример mad_nazgul видем?
Сделай такой же![/quot]
мы в контуре работаем оттуда не работает копипаст,а руками набивать опухнешь)
так что код ты не увидишь)
...
Рейтинг: 0 / 0
Stream API
    #39934890
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
тут идея в том чтобы не засорять память лишними объектами
неужели твоя супер идея?
stream..... filter......
Каким образом без создания объекта будем использовать результат фильтра?
...
Рейтинг: 0 / 0
Stream API
    #39934892
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
набивать опухнешь)
а он смог?
private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);
?
...
Рейтинг: 0 / 0
Stream API
    #39934894
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стримы бывают ленивые. Например, по сети из Африки.
Поэтому, пока не создашь объект = результат, не узнаешь count.
...
Рейтинг: 0 / 0
Stream API
    #39934895
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
так что код ты не увидишь)
я знаю. У тебя цель - ПТ.
...
Рейтинг: 0 / 0
25 сообщений из 174, страница 1 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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