我尝试制作一个名为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
。
答案 0 :(得分:3)
返回值的地图,活动名称为关键字:
.*rc