У меня есть данные, которые набирают данные, возвращающиеся из DB следующим образом:
Ввод выглядит так. Это ArrayList < /p>
id year name rank Subj Marks
1 2025 name1 A Science 90
1 2025 name1 A History 90
1 2025 name1 A Math 90
2 2025 name2 A Science 80
2 2025 name2 A History 80
2 2025 name2 A Math 80
< /code>
Вывод должен выглядеть так < /p>
id year name rank Subj Marks
1 2025 name1 A Subject 270
2 2025 name2 A Subject 240
< /code>
Это было бы минимум 1500 записей, так что было бы эффективным.
Что я думал, зациклена на список и размещение их в Hashmap.
Затем итерационные карты с тем же идентификатором и суммируют свойство Marks.HashMap hmDto = new HashMap();
for (ABCDTO obj : list)
{
ResultsBean bean = new ResultsBean();
hmDto.put(obj.getId(), bean);
}
< /code>
, а затем итерация Hashmap и суммируйте оценки. Наконец -то добавьте Cummated Data в другой список < /p>
HashMap hmCalDto = new HashMap();
for (Map.Entry entry : hmDto .entrySet()) {
List dtoTempList = new ArrayList();
ABCDTO obj = (ABCDTO) entry.getValue();
if (hmDto.containsKey(entry.getKey())) {
dtoTempList.add(obj);
} else {
continue;
}
hmCalDto.put(entry.getKey(), obj);
}
< /code>
Я потерян, как сделать это дальше. Есть ли эффективный способ сделать это, пожалуйста.
Подробнее здесь: https://stackoverflow.com/questions/796 ... e-function