powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream API
25 сообщений из 174, страница 6 из 7
Stream API
    #39936264
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ево в болото этого блинова. Лучше подумайте хором когда последний раз вам нужно
было делать операции группировки или аналитики над Stream и вы колебались
между выбором где это сделать. На уровне DBMS или Application.
...
Рейтинг: 0 / 0
Stream API
    #39936300
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы ответить на твой вопрос нужно понять несколько вещей
на чем твое приложение построено-чистый jdbs или одна из имплементаций jpa
далее уже взять конретнуб имплементацию и залезть под ее капот - выяснив ,как реализована данная функция
уже после этого делать выводы какие
но наверно правильней те функции,которые умеет база -оставить базе или жпашке
вместо наворачиваний в сервис слое мусорных объектов
...
Рейтинг: 0 / 0
Stream API
    #39936303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще не про то как она реализована внутри. А я про УДОБСТВО ее применения и про фактическую
ВОЗМОЖНОСТЬ. Я знаю что алгоритмически любой SQL запрос мы можем реализовать на Java
при условии что просто имеет доступ к сырым данным.

Но сама реализация его на SQL может быть более выгодной. Кода меньше. А разработчику
чем меньше кода - тем лучше. Это лаконично. Это удобно поддерживать.

Я подниму отдельный топик. Наверное в ПТ на эту тему.
...
Рейтинг: 0 / 0
Stream API
    #39936304
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я подниму отдельный топик. Наверное в ПТ на эту тему.
не пугай их там Stream.
Обзови топик просто: "двухзвенка или трехзвенка".
)))
...
Рейтинг: 0 / 0
Stream API
    #39936305
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПТ - это пятница. А не то что ты подумал
...
Рейтинг: 0 / 0
Stream API
    #39936306
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
ПТ - это пятница. А не то что ты подумал
аха ха))))
...
Рейтинг: 0 / 0
Stream API
    #39936328
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединюсь к клубу извращенцев:
работает, если в стриме только 2 элемента и брасает unchekedException.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
import java.util.Optional;
import java.util.stream.Stream;

public class OneValue {
	public static void main(String[] args) throws Exception {
		Adress ad1 = new Adress("Minsk"  , "644", "Orlovskai");
		Adress ad2 = new Adress("Minsk"  , "643", "Pobeditelei");
		
		Stream<Adress> stream = Stream.of(ad1, ad2);
		stream.filter(adres -> adres.getPostCode().equals("643"))
		      .reduce(Optional.<Adress>empty(), (acc, element) -> acc.equals(Optional.empty()) ? Optional.of(element) : Optional.<Adress>empty(), (acc, element) -> Optional.<Adress>empty())
		      .ifPresent((value)-> {throw new RuntimeException("Some message");}   );
	}
}

class Adress{
	private final String city;
	private final String postCode;
	private final String street;
	
	Adress(String city, String postCode, String street){
		this.city = city;
		this.postCode = postCode;
		this.street = street;
	}

	public String getCity() {
		return city;
	}

	public String getPostCode() {
		return postCode;
	}

	public String getStreet() {
		return street;
	}

	@Override
	public String toString() {
		return "Adress [city=" + city + ", postCode=" + postCode + ", street=" + street + "]";
	}

}



Тут походу в цепочке операций со стримом в конце нужно вернуть Optional, чтобы иметь возможность выбросить исключение через метод orElseThrow. Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).
...
Рейтинг: 0 / 0
Stream API
    #39936349
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen
условиям автора

"Один дурак может задать столько вопросов что и 100 мудрецов не ответят" [(с) В.И. Ленин ПСС том 8 стр.15, работа "Как нам преобразовать РабКрин"]
...
Рейтинг: 0 / 0
Stream API
    #39936354
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen
Присоединюсь к клубу извращенцев:
работает, если в стриме только 2 элемента и брасает unchekedException.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
import java.util.Optional;
import java.util.stream.Stream;

public class OneValue {
	public static void main(String[] args) throws Exception {
		Adress ad1 = new Adress("Minsk"  , "644", "Orlovskai");
		Adress ad2 = new Adress("Minsk"  , "643", "Pobeditelei");
		
		Stream<Adress> stream = Stream.of(ad1, ad2);
		stream.filter(adres -> adres.getPostCode().equals("643"))
		      .reduce(Optional.<Adress>empty(), (acc, element) -> acc.equals(Optional.empty()) ? Optional.of(element) : Optional.<Adress>empty(), (acc, element) -> Optional.<Adress>empty())
		      .ifPresent((value)-> {throw new RuntimeException("Some message");}   );
	}
}

class Adress{
	private final String city;
	private final String postCode;
	private final String street;
	
	Adress(String city, String postCode, String street){
		this.city = city;
		this.postCode = postCode;
		this.street = street;
	}

	public String getCity() {
		return city;
	}

	public String getPostCode() {
		return postCode;
	}

	public String getStreet() {
		return street;
	}

	@Override
	public String toString() {
		return "Adress [city=" + city + ", postCode=" + postCode + ", street=" + street + "]";
	}

}



Тут походу в цепочке операций со стримом в конце нужно вернуть Optional, чтобы иметь возможность выбросить исключение через метод orElseThrow. Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).


это портянка не подходит ибо содержит в своем теле тернальный оператор,в условии было сказано без ифов
с ифом это делается в 1 строчку -зачем городить такой огород было,но у памфилова свое видение видимо))
...
Рейтинг: 0 / 0
Stream API
    #39936356
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen
Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).

и не найдешь,эта задача не имеет решения в озвученных условиях.
Пришлось втыкать иф
...
Рейтинг: 0 / 0
Stream API
    #39936360
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79, Я как раз изучаю стримы (около недели), вот и решил попробовать свой вариант. Сбрось, если несложно вариант с ифом.
...
Рейтинг: 0 / 0
Stream API
    #39936383
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen
asv79, Я как раз изучаю стримы (около недели), вот и решил попробовать свой вариант. Сбрось, если несложно вариант с ифом.

вот смотри вместо портянки памфилова 2 строчки кода

ДТО для теста

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(fluent = true)
class Item {
    private String code;
    
}



логика
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
import java.util.Arrays;
import java.util.List;

import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toList;

public class Main {

    public static void main(String[] args) {
        List<Item> list = Arrays.asList(new Item().code("643"), new Item().code("810"));
        list.stream()
                .filter(x -> x.code().equals("643"))
                .collect(collectingAndThen(toList(), l -> {
                    if (l.size() != 2) throw new NullPointerException();
                    return l;
                }));
    }
}


если в листе будет не 2 элемента - кинет эксепшн,я кинул нул поинтер для наглядности(так как это анчекед исключение - не нужно трай кетч использовать,чтобы не загромождать код)
...
Рейтинг: 0 / 0
Stream API
    #39936387
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen,
Код: java
1.
2.
3.
4.
Stream str = получили из сервиса
List<String> lst = str.filter(.................... toList...
if (lst......)
    делаем что надо


ТС просто дурку включил и упирался до последнего.
...
Рейтинг: 0 / 0
Stream API
    #39936403
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

а ты не видишь разницы между key-value
surname/lastname это поля DTO
а 643- это значение из справочника- .....

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?

asv79

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

Такой же бред

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

Давайте тогда и имя клиента, и сумму кредита тоже в проперти хранить! Очень удобно! Нужно бизнесу выдать новый кредит - поменяли проперти - перезагрузили сервер и вуа-ля... кредит выдали!
...
Рейтинг: 0 / 0
Stream API
    #39936405
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?
!

про валидаторы и тесты слышал?есть такое в ентерпрайзе))
...
Рейтинг: 0 / 0
Stream API
    #39936408
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Такой же бред

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

на экране чего?мы разрабатываем апи дядя ))
мне не важно что там на экране ,Мне важно что мне приходит и что я отдаю,Я никаким боком не знаю и знать не хочу что там на стороне UI
валюта кредита у нас одна Рубли,это прописано в спецификации
но если нам прилетит другая валюта я должен выдать обратно бизнес еррор
ферштейн?
...
Рейтинг: 0 / 0
Stream API
    #39936410
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы как-то саппортили систему маркетинг акций для одного моб-оператора. Смена пропертей
выглядела так. Мы просто заводили в БД новое проперсти и у него была дата действия
from=, to=. Суть этого действия была в том что акция активируется обычно в полночь
в 00:00 и после этого маркетинг-система ее делает доступной. Тоесть участия оператора
или девопса не надо. И перегружать ничего не надо. Все проперти и даже их иерархии
были би-темпоальные.
...
Рейтинг: 0 / 0
Stream API
    #39936411
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
прилетит другая валюта
1000₽ вместо 1000€
)))
...
Рейтинг: 0 / 0
Stream API
    #39936412
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
skyANA
пропущено...

Во всех топиках с вакансиями, где ты с улыбкой пишешь, чтобы взяли тебя, требуется опыт работы с базами данных.
Думаешь это не подразумевает умение писать запросы?

вся эта работа сводиться к одному extends JPARepository)
в худщем варианте JOOQ
и я сомневаюсь что в этих вакансиях эти базы еще не спроектированы
все оюычно сводится к редактированию справочников и последующему рефакторингу мапперов и валидаторов

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

Так всё-таки откуда ты взял, что "можно быть успешным энтерпрайз программистом вообще не умея делать ни 1 запроса"?
...
Рейтинг: 0 / 0
Stream API
    #39936413
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Смена валюты должна быть в Модели. Если там она есть, то все ОК.
Если нет, то значит ЭТО НЕ НУЖНО ни в пропертях ни в скриптах, ни в конфигах.
Зы.
Решение проблемы через задний проход.
...
Рейтинг: 0 / 0
Stream API
    #39936414
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
заводили в БД новое проперсти
вспомнил. У вас бд key value.
Там модель и есть проперти)
...
Рейтинг: 0 / 0
Stream API
    #39936415
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Leonid Kudryavtsev

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?
!

про валидаторы и тесты слышал?есть такое в ентерпрайзе))

если значение "в справочнике", то и валидироваться оно должно по справочнику, а не мифическому проперти или константе

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

Оно УЖЕ в справочнике. Нахрена городить какой-то проперти, дублирующий справочник?
...
Рейтинг: 0 / 0
Stream API
    #39936416
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я и не говорил про смену валюты. Вообще наше представление сейчас о валютах - сейчас поверхностное.
Если в наш топик зайдет дата-аналитик то он просто поржет держась за бока. Валют может быть много
ОДНОВРЕМЕННО. И они тоже могут иметь свойства ДЕЙСТВИЯ на промежутке времени или иметь открытый
интервал действия.
...
Рейтинг: 0 / 0
Stream API
    #39936417
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
заводили в БД новое проперсти
вспомнил. У вас бд key value.
Там модель и есть проперти)

У НАС?
...
Рейтинг: 0 / 0
Stream API
    #39936418
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
asv79
пропущено...

про валидаторы и тесты слышал?есть такое в ентерпрайзе))

если значение "в справочнике", то и валидироваться оно должно по справочнику, а не мифическому проперти или константе

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

Оно УЖЕ в справочнике. Нахрена городить какой-то проперти, дублирующий справочник?


asv79
Я никаким боком не знаю и знать не хочу
...
Рейтинг: 0 / 0
25 сообщений из 174, страница 6 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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