Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / grouping by multiple fields / 10 сообщений из 10, страница 1 из 1
03.03.2021, 19:58
    #40050442
Hubertanyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Доброго времени суток!
Есть такая структура
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Item {
    
    private Long idGood;

    private String name;

    private String description;

    private Double cost;

    private String partNum;

    private Date date;
    
    private String shop;
}


есть такой список

idGoodnamedescriptioncostpartNumdateshop78name1description150015-101.03.2010shop178name1description150015-101.03.2010shop278name1description150015-101.03.2010shop3.....................78name1description130015-101.03.2010shop578name1description130015-101.03.2010shop6.....................78name1description110015-101.03.2010shop878name1description110015-2101.03.2010shop8.....................78name2description250015-101.03.2010shop8
В итоге нужно сгруппировать элементы списка - группировать нужно в случае если все поля, кроме поля shop, равны. В случае если какое-либо боле различается, то в результате это разные записи. В итоге должно получиться так

idGoodnamedescriptioncostpartNumdateshop78name1description150015-101.03.2010shop1,shop2,shop378name1description130015-101.03.2010shop5,shop678name1description110015-101.03.2010shop878name1description110015-2101.03.2010shop878name2description250015-101.03.2010shop8
Нашел что-то похожее (второй ответ без использования мапы)
Объединение-с-суммированием-стоимости-элементов-с-одинаковой-ценой

Но в моем случае приходится использовать дополнительные библиотеки для получения разницы между двумя объектами. Есть ли какие-то еще варианты?
Заранее спасибо!
...
Рейтинг: 0 / 0
03.03.2021, 21:04
    #40050462
Hubertanyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Не знаю как отредактировать изначальное сообщение...
Внесу поправки - группировать нужно в случае если все поля, кроме поля shop и idGood, равны.

idGoodnamedescriptioncostpartNumdateshop78name1description150015-101.03.2010shop178name1description150015-101.03.2010shop278name1description150015-101.03.2010shop3.....................81name1description130015-101.03.2010shop582name1description130015-101.03.2010shop6.....................83name1description110015-101.03.2010shop884name2description210015-2101.03.2010shop8.....................85name3description350015-1101.03.2010shop8

Ну и в результате должно быть так

namedescriptioncostpartNumdateshopname1description150015-101.03.2010shop1,shop2,shop3name1description130015-101.03.2010shop5,shop6name1description110015-101.03.2010shop8name2description210015-2101.03.2010shop8name3description350015-1101.03.2010shop8
...
Рейтинг: 0 / 0
03.03.2021, 21:46
    #40050473
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Hubertanyan
Есть ли какие-то еще варианты?
функция, которая строит хеш-код на основе полей, которые используются в сравнении. По ее результату и группируем. Например Objects.hashCode(item.idGood, item.name, item.description ...)
...
Рейтинг: 0 / 0
04.03.2021, 07:47
    #40050527
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Hubertanyan,
авторгруппировать нужно в случае если все поля, кроме поля shop и idGood, равны.
Почему вместо слова слова "стул" вы употребляете фразу "на котором сидят и имеет 4 ножки"?
GROUP BY перечисление_полей_группировки.
Так обычно говорят.
А не "кроме")))))
...
Рейтинг: 0 / 0
04.03.2021, 11:46
    #40050595
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Хороший день. И хороший кейс чтобы потренироваться в collect/reduce.

Давайте решим эту задачу хотя-бы 2 разными способами.
...
Рейтинг: 0 / 0
04.03.2021, 12:45
    #40050613
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
mayton,

Почему 2? Один - stream.... collect...
...
Рейтинг: 0 / 0
04.03.2021, 13:36
    #40050626
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Безальтернативщина какая-то.
...
Рейтинг: 0 / 0
04.03.2021, 13:40
    #40050630
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
mayton
Безальтернативщина какая-то.
и не говори.
Просто вопрос новичка что такое sql оператор GROUP BY
...
Рейтинг: 0 / 0
04.03.2021, 13:57
    #40050638
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
Будет неэтично заболтать топик. Давай что-ли бедняге поможем. И потом - теория. Что быстрее collect или reduce
вернее что больше скушает хипа.
...
Рейтинг: 0 / 0
04.03.2021, 18:24
    #40050823
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
grouping by multiple fields
поковыряться левой рукой в правом ухе?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / grouping by multiple fields / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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