У меня есть список строк, который выглядит примерно так:
- 2010 1 11,45
- 2010 2 09.50
- 2010 3 15,00
- .
- .
- .
- 2019 12 11.10
(список представляет собой список расходов в месяц в период между 2010 и 2019 годами)
Я разделил список на 3 списка для каждого значения, такого как:
for(....){
val part = list.get(i).split(" ")
val year = parts[0]
val month = parts[1]
val spend = parts[2]
yearlist.add(year)
monthlist.add(month)
spendlist.add(spend)
}
Теперь моя проблема в том, что я хочу найти год с наибольшей общей суммой расходов. Как бы я добавил все расходы за каждый год?
Я попробовал следующий метод, однако это дает мне исключение IndexOutOfBounds:
var totalspend = 0
for(i in 0..yearlist.size-1){
if(yearlist[i]==yearlist[i+1]){//i get an error here
totalspend = totalspend + spendlift[i]
}
else if(yearlist[i]!=yearlist[i+1]){
totalspend = totalspend + spendlift[i]
spendforyear.add(totals(year[i], totalspend))
totalspend = 0.0
}
}
Я предполагаю, что ошибка в том, что я не могу сравнить окончательное значение годового списка с yearlist [i + 1], когда i + 1 выходит за пределы.
Как бы я go решил это?