Java 如果重复出现,则将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 它也可能包含

我正在使用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

它也可能包含单个值,例如它可能具有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);
}