Java 如果重复出现,则将while循环中的列值相加
我正在使用ajax创建一个表,并使用while循环获取值:Java 如果重复出现,则将while循环中的列值相加,java,sum,Java,Sum,我正在使用ajax创建一个表,并使用while循环获取值: while (rstdb.next()) { rstdb.getInt(1)+"~"+ rstdb.getInt(2); } 在我的while循环中,我的rstdb.getInt(1)将是2,2,2,2,3,3……,第二个值rstdb.getInt(2)是10,20,30,40,50,10,20,… 我需要分别对2和3的具体值求和 即 它表示2的10+20+30+40+50=150,3的10+20=30 它也可能包含
while (rstdb.next()) {
rstdb.getInt(1)+"~"+ rstdb.getInt(2);
}
在我的while循环中,我的rstdb.getInt(1)
将是2,2,2,2,3,3……,第二个值rstdb.getInt(2)
是10,20,30,40,50,10,20,…
我需要分别对2和3的具体值求和
即
它表示2的10+20+30+40+50=150,3的10+20=30
它也可能包含单个值,例如它可能具有4,5,5,6,7,7….
我该怎么做
我需要像这样的东西:
while (rstdb.next()) {
rstdb.getInt(1)+"~"+ rstdb.getInt(2)+"~"+sum;
}
变量
sum
应包含求和值。您可以使用整数到整数的映射:
Map<Integer, Integer> integerMap = new HashMap<>();
while (rstdb.next()) {
int column1 = rstdb.getInt(1);
int column2 = rstdb.getInt(2);
if (integerMap.containsKey(column1)) {
int currentSum = integerMap.get(column1);
integerMap.put(column1, currentSum + column2);
} else {
integerMap.put(column1, column2);
}
}
使用地图进行此操作。您可以有一个映射,该映射应该映射特定数字及其对应值的总和
int c1, c2;
Map<Integer, Integer> sum = new HashMap<>();
while (rstdb.next()) {
c1 = rstdb.getInt(1);
c2 = rstdb.getInt(2);
if(sum.containsKey(c1)) {
sum.put(c1, sum.get(c1) + c2);
// ^ will return current sum of second column
} else {
sum.put(c1, c2);
}
rstdb.getInt(1)+"~"+ rstdb.getInt(2)+"~"+sum.get(c1);
}
intc1,c2;
Map sum=新的HashMap();
while(rstdb.next()){
c1=rstdb.getInt(1);
c2=rstdb.getInt(2);
if(总容量(c1)){
求和(c1,求和(c1)+c2);
//^将返回第二列的当前和
}否则{
求和(c1,c2);
}
rstdb.getInt(1)+“~”+rstdb.getInt(2)+“~”+sum.get(c1);
}
计算完成后,我需要打印数值。怎么做?我正在做的是outstring=outstring+rstdb.getInt(1)+“~”+rstdb.getInt(2)编码>然后在外循环输出。打印(输出)
。我如何使用你的代码来实现它?我只需要加上rstdb.getInt(2)
。你的意思是什么,我想这就是我正在做的。我只添加第一列。请先看代码。afzalex需要求和的值是double,第一个coulmn值是int。必须做什么更改?sum.put(c1,sum.get(c1)+c2)代码>这意味着您要将第一列和最后一列相加??这就是我所困惑的!!1.求和的值为int.2。这是总结的第二列。第一列仅用作键。您应该仔细尝试或检查代码@桑图库尔
int c1, c2;
Map<Integer, Integer> sum = new HashMap<>();
while (rstdb.next()) {
c1 = rstdb.getInt(1);
c2 = rstdb.getInt(2);
if(sum.containsKey(c1)) {
sum.put(c1, sum.get(c1) + c2);
// ^ will return current sum of second column
} else {
sum.put(c1, c2);
}
rstdb.getInt(1)+"~"+ rstdb.getInt(2)+"~"+sum.get(c1);
}