【问题标题】:How to select specific field and make total sum for that field with JDO如何使用 JDO 选择特定字段并计算该字段的总和
【发布时间】:2011-09-06 19:49:10
【问题描述】:

我只想做一个简单的函数,对所有同名的函数求和。

我已经像这样映射 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() ;

}

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

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

【问题讨论】:

标签: java google-app-engine jdo


【解决方案1】:
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");

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

【讨论】:

  • 谢谢你的回答!!但是没有HashMap也能做到吗?
  • 我尝试了你的代码,但 netbeans 无法编译它,因为:“-source 1.5 使用源 7 或更高版本不支持菱形运算符”我该怎么办?
  • 我可以做一些 JDO 查询来首先选择所有 CostName 是“食物”的地方,然后做一个 for。
  • 我试过这样的查询: List costFood = (List) pm.newQuery(JDO.class,"capitolo == alimentari").execute();但它给了我所有的全部。不幸的是,我 HasMap 不会在我的 .jsp 中工作
  • 我按照你的建议工作,我不得不带走 运算符!
猜你喜欢
  • 2014-11-18
  • 1970-01-01
  • 2016-03-08
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 2016-05-01
相关资源
最近更新 更多