На моей карте я сохраняю месячные значения из файла Excel.Теперь я хочу создать другую карту, в которой все месячные значения добавляются как годовые значения.
Я уже создал глобальную переменную.И я попытался сохранить ежемесячное значение в этой переменной.Но мои попытки не сработали.
В arryList карту с месячными значениями и годовыми значениями следует сохранять один раз.
Это мой текущий код, который извлекает данные из файла Excel и передает их на карту:
public List getResultFromExcelFile() throws Exception {
ArrayList resultMonthly = new ArrayList<>();
int row = 526;
// monthly
for (int i = 32; i < 32 + 12; i++) {
if (getWorkBook().getNumber(3, i) != 0) {
for (int k = 0; k < 461; k++) {
HashMap<String, Object> resultSetMonthly = new HashMap<>();
if (getWorkBook().getNumber(row, i) != 0) {
resultSetMonthly.put("db-nr", getWorkBook().getNumber(row, 1));
resultSetMonthly.put("name", getWorkBook().getText(row, 2));
resultSetMonthly.put("mandantKagId", getWorkBook().getNumber(row, 3));
resultSetMonthly.put("period", getWorkBook().getNumber(4, i));
resultSetMonthly.put("amount", getWorkBook().getNumber(row, i));
resultMonthly.add(resultSetMonthly);
}
row++;
}
row = 526;
}
}
return resultMonthly;
}
Я пробовал что-то вроде этого:
private Map sumMonthlyResultToYearlyResult(List resultMonthly) {
Map<String, Object> yearlyResult = new HashMap<>();
Map monthlyResult = (Map) resultMonthly.get(0);
double sumAmount = 0;
for (int i = 0; i < monthlyResult.size(); i++) {
double monthlyAmount = (double) monthlyResult.get("amount");
sumAmount + monthlyAmount;
...
...
...
}
return yearlyResult;
}
Может кто-нибудь сказать мне, как я могу суммировать месячные значения до годовых значений?Приятно также с потоковым API Java