我有一个像这样的值的表:
我必须累积每个人(列'名称')以上日期和汽车,电脑和餐价。 它应该是这样的:
我的数据结构如下:
Map<String, Map<Date, List<product_price_object>>> myTable = new TreeMap<>();
我正在尝试迭代Map并嵌套Map和List。 问题是,我无法计算List的总和,如:
product_list.get(i) + product_list_get(i+1)
因为我会用第一行的computer_price来计算car_price。
for(Entry<String, Map<Date, List<LogonuserAllowance>>> entry : history.entrySet()) {
String currentUser = entry.getKey();
user_sum_map.put(currentUser, new TreeMap<>());
Map<Date, List<LogonuserAllowance>> month_map = entry.getValue();
for(Entry<Date, List<LogonuserAllowance>> allowance : month_map.entrySet()){
calender.setTime(allowance.getKey());
currentMonth = calender.get(Calendar.MONTH);
user_sum_map.get(currentUser).put(currentMonth, new ArrayList<>());
BigDecimal newValue = null;
BigDecimal previousValue = null;
BigDecimal sum = null;
//iterate through list
for (int i = 0; i < allowance.getValue().size(); i++) {
newValue = allowance.getValue().get(i).getPrice();
previousValue = user_sum_map.get(currentUser).get(currentMonth).get(i-1);
sum = previousValue.add(newValue);
user_sum_map.get(currentUser).get(currentMonth).add(sum);
}
}
}
我担心,我的解决方案是复杂的,也许还有一些 更容易迭代和累积上个月和价格。