Как выбрать конкретное поле и сделать общую сумму для этого поля с помощью JDO - PullRequest
0 голосов
/ 06 сентября 2011

Я хочу сделать простую функцию, которая суммирует все с одинаковым именем.

Я сопоставил 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 голосов
/ 06 сентября 2011
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");

Вышеприведенное вычисляет все итоги за один проход, а затем позволяет получить все, что вы пожелаете.Вы также можете найти определенное имя в цикле и добавить только совпадающие значения.

...