Пример SQL-результата
dataResult
Code Amt TotalAmtPerCode
A1 4 0
A1 4 0
B1 4 0
B1 5 0
A1 6 0
с этим результатом
я хотел бы спросить о том, как вычислить TotalAmtPerCode
Ожидаемый результат должен быть
Code Amt TotalAmtPerCode
A1 4 14
A1 4 14
B1 4 9
B1 5 9
A1 6 14
образец кода
for (Map<String, Object> data: dataResult) {
Long total = ComputeTotalAmount(dataResult,data.get(DBColumn.Code.name();
container.setTotalAmtPerCode(total);
}
функция, которая вычисляет общую сумму
private static long ComputeTotalAmount(List<Map<String, Object>> list, String code) {
Long total = 0;
for (Map<String, Object> data: dataResult) {
if (code.equals(data.get(DBColumn.Code.name()))) {
total = total+Long.valueOf(data.get(DBColumn.Code.name()).toString)
}
}
}
Этот работает нормально, но я хотел бы попросить оптимизацию этого кода. Потому что, если бы я зациклил 10000 записей, он проверил бы 1-ю запись для кода, затем повторил бы 10 тыс., Чтобы найти тот же код и получить сумму по этому коду и суммировать все это, тогда он проверил бы 2-ю запись и т. Д.