从地图中的元素中获取总价值

时间:2018-05-17 20:46:13

标签: java

我尝试制作一个名为getValueForActivity的方法,需要通过Map<String, Activity>然后对该地图中的每个Activity进行检查,然后通过Map<String, Expense>并获得所有费用的总和。它还需要确保我在一个特殊类型的用户中。

public ArrayList<Double> getValueForActivity(){
   ArrayList<Double> list = new ArrayList<Double>();
   for(Activity a:this.allActiv.values()){ //allActiv has all the activities on the system.
       double totalAct = 0;
       for(Expense e: this.expenses.values()){ //this.expenses has all the expenses on the system.
           if(this.userId.equals(e.getCustomerId())){ // this checks the user, doesn't matter
                if(e.getActivity().equals(a)){
                    totalAct += e.getExpenseValue();
                }
           }
       }
       list.add(totalAct);
   }
   return list;
}

目前这是打印一个具有正确值但有1个错误的数组。它将值向右移动,因此第一个应该是168.0,它是0.0,第二个是168.0,依此类推。

我正在寻找的是获得一个解决方案,不仅允许我打印每个Activity的总值,而且还在相应的总值之前打印活动的名称。获取Activity名称的方法仅为getName()ArrayList只允许我拥有值或Activity

1 个答案:

答案 0 :(得分:3)

返回值的地图,活动名称为关键字:

.*rc