Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
1

Алгоритм агрегирования

15.06.2018, 21:28. Показов 606. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
У меня есть такая вот структура данных:
Java
1
Map<String, List<MyModel>>
MyModel содержит в себе:
Java
1
2
3
double value;
int counter1;
int counter2;
Мне необходимо создать метод агрегации 2 таких структурок по таким правилам:
При разных ключах в Map они просто сохраняются обе со своим содержимым.
При одинаковых String ключах два List собираются в один, причём элементы с одинаковым value скрещиваются в один, а их counter-ы суммируются.

Для наглядности прикрепил картинку с примером.
На картинке:
data1 и data2 собственно те данные которые агрегировать нужно по правилам. result - то что нужно получить.
В data2 мапе нет ключа k2, поэтому данные с этим ключем существуют лишь в одной мапе и идут в результат без изменений.
k1 и k3 ключи есть в обоих мапах и поэтому идёт соеденение значений этих мап, а именно слияние списков моделей.
При одинаковых знаечниях value - их counter-ы складываются, при уникальных знаечниях - просто добавляются в результат.

Подскажите более менее хороший способ сделать это. За ранее спасибо.
Миниатюры
Алгоритм агрегирования  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2018, 21:28
Ответы с готовыми решениями:

Сетевая карта для агрегирования каналов
Друзья, посоветуйте, пожалуйста, модель сетевого адаптера для агрегирования каналов. Пока...

Оптимизация процедуры агрегирования иерархических данных
Всем доброго времени суток. Есть много данных которые имеют иерархический вид (см вложение как...

Выборка полей, не являющихся объектом для агрегирования
Здравствуйте, господа! Помогите решить проблему. Есть результат обработки данных (фрагмент)...

Создать два класса, связанных отношением агрегирования
Создать два класса, связанных отношением агрегирования. Реализовать связь через поле типа List&lt;&gt;. ...

1
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
15.06.2018, 23:46 2
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Подскажите более менее хороший способ сделать это
Декомпозиция задачи — хороший способ.
0
15.06.2018, 23:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2018, 23:46
Помогаю со студенческими работами здесь

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная...

Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм
Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм 1. Объясни, что...

Разработать алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм
Расставить строки данной матрицы в порядке возрастания наибольших элементов в строках.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru