0

运行查询 (DB2) 后,结果集有 4 列。

res1=resultset.getString(Em);  
res2=resultset.getString(Posc);  
res3=resultset.getString(Cal);  
res4=resultset.getString(Ern);

输出如下所示:

Em     Posc   Cal Ern  
305      1     2   N  
306      1     2   N  
307      2     3   Y     
  • 都是Em独一无二的
  • Posc可以是任何整数
  • Cal可以是任何整数
  • Ern可以是 N 或 Y

我如何编码以获取 和 的不同值的Posc计数。CalErn

例如。如何获得所有 1、2 等的计数,无论Posc.

同样,我怎样才能获得其他列的计数。

4

2 回答 2

0

创建Map<Integer,Integer>列的值作为键和计数作为值。

对于您的每个值,Posc请检查地图是否包含该值作为键。如果不添加它的值 1。如果它增加计数值

例如Posc(我假设您无论如何都在循环结果集......)

Map<Integer,Integer> countsOfPoscValues = new HashMap<Integer,Integer>

//Result set loop
{
    //Get values
    Integer posc = //....
    if(countsOfPoscValues.containsKey(posc))
    {
         countsOfPoscValues.put(posc, countsOfPoscValues.get(posc)+1);
    }
    else
         countsOfPoscValues.put(posc, 1);
    //....etc
 }
于 2013-10-08T19:32:01.817 回答
0

你需要这样的东西:

        Map<Integer,Integer> emCount = new HashMap<>();
        Map<Integer,Integer> poscCount = new HashMap<>();
        Map<String,Integer> calCount = new HashMap<>();

        while (resultset.next()) {
            final int em = resultset.getInt(Em);
            final int posc = resultset.getInt(Posc);
            final String cal = resultset.getString(Cal);

            emCount = putKeyValue(emCount,em);
            poscCount = putKeyValue(poscCount ,em);
            calCount = putKeyValue(calCount ,em);
        }

public Map<Object, Integer> putKeyValue(Map<Object, Integer> colCount, Object val) {
    if (colCount.containsKey(val)) {
        colCount.put(val, colCount.get(val).intValue() + 1);
    } else {
        colCount.put(val, 1);
    }

    return colCount;
}
于 2013-10-08T19:39:25.020 回答