Java 如何选择特定字段并使用JDO对该字段进行合计
我只想做一个简单的函数,用相同的名字求和 我已将JDO映射为如下所示:Java 如何选择特定字段并使用JDO对该字段进行合计,java,google-app-engine,jdo,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 +=
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() ;
}
我如何计算食物或/和水的成本
应该很简单,但我不明白
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");
上面的内容计算了一次过程中的所有总数,然后允许您检索所需的任何数据。您还可以在循环中查找特定名称,只添加匹配的值。虽然某些JDO实现支持“分组依据”,但GAE不支持AFAIK。看对话帖谢谢你的回答!!但是没有HashMap也可以吗?我试过你的代码,但netbeans无法编译它,因为:源代码1.5不支持菱形运算符使用源代码7或更高版本我应该怎么做?我可以执行一些JDO查询,首先选择CostName是食物的所有位置,然后执行for。我尝试了这样的查询:ListcostFood=List pm.newQueryJDO.class,capitolo==alimentari.execute;但它给了我所有的总数。不幸的是,我HasMap不习惯在我的jspI工作。根据你的建议,我不得不带走操作员!