我想从ArrayList中获取特定元素的总和。这些元素是从我的sql db中提取的。
这是我现在尝试的但结果不是我想要的。
代码:
ArrayList<Ehealth> datalist = new ArrayList<Ehealth>();
while(rs.next()) {
Integer grasimi = rs.getInt("Total_grasimi");
Integer carbohidrati = rs.getInt("Total_carbohidrati");
Integer proteine = rs.getInt("Total_proteine");
Integer calorii = rs.getInt("Total_calorii");
Ehealth ehealthlist =
new Ehealth(grasimi,carbohidrati,proteine,calorii);
datalist.add(ehealthlist);
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(ehealthlist.calorii);
int sum = 0;
for (Integer integer : numbers) {
sum = sum + integer;
}
System.out.println(sum);
}
我在控制台中的结果是从特定类别的db中提取的值 例如:
364
586
586
183
586
449
458
我想把这些数字加起来。
谢谢!
答案 0 :(得分:0)
我认为您的问题位于int sum = 0;
行,因为您将while
设置为每个sum
循环,请尝试:
ArrayList<Ehealth> datalist = new ArrayList<Ehealth> ();
int sum = 0;
while(rs.next()){
Integer grasimi = rs.getInt("Total_grasimi");
Integer carbohidrati = rs.getInt("Total_carbohidrati");
Integer proteine = rs.getInt("Total_proteine");
Integer calorii = rs.getInt("Total_calorii");
Ehealth ehealthlist = new Ehealth(grasimi,carbohidrati,proteine,calorii);
datalist.add(ehealthlist);
}
for (Ehealth ehealth : datalist) {
sum += ehealth.calorii;
}
System.out.println(sum);
答案 1 :(得分:0)
您应该从数据库中获取所有数据,然后在以后使用该列表执行所需的操作。
例如
// Get all records
ArrayList<Ehealth> datalist = new ArrayList<Ehealth>();
while(rs.next()) {
Integer grasimi = rs.getInt("Total_grasimi");
Integer carbohidrati = rs.getInt("Total_carbohidrati");
Integer proteine = rs.getInt("Total_proteine");
Integer calorii = rs.getInt("Total_calorii");
Ehealth ehealthlist =
new Ehealth(grasimi,carbohidrati,proteine,calorii);
datalist.add(ehealthlist);
}
// Sum the data
int sum = 0;
for (Ehealth ehealth : datalist) {
sum += ehealth.calorii;
}
// Print the total
System.out.println(sum);