如何选择特定字段并使用JDO为该字段创建总和

时间:2011-09-06 19:49:11

标签: java google-app-engine jdo

我想制作一个简单的函数,将所有相同的名称相加。

我已经像这样映射了JDO:

costName    Cost     
food        10 
food        10
water       5
food        10

total of food 30
total of water 5

使用此代码,我得到所有的总和(本例35)

int totalsum=0;
int sumCap=0;
for (JDO total : table) {

     totalsum += total.getCost() ;

}

如何只获得食物和/或水的费用?

应该很简单,但我不明白。

1 个答案:

答案 0 :(得分:0)

Map<String, Integer> values = new HashMap<>();
for (JDO total : table){
   String name = total.getCostName();
   Integer val = values.get(name);
   if (val == null) val = 0;
   val += total.getCost();
   values.put(name, val);
}
int total = values.get("food");

以上计算一次通过的所有总计,然后允许您检索任何您想要的。您还可以在循环中查找特定名称,并仅添加匹配的值。