运行查询(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
,Cal
和Ern
的不同值的计数。
例如。如何获得所有1,2等的计数,无论Posc
的值是什么。
同样,我如何获得其他列的计数。
答案 0 :(得分: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
}
答案 1 :(得分: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;
}