我正在使用Hashmap来存储结果集。
HashMap<String,Integer> hMap = new HashMap<String,Integer>();
String existsUser = "select NAME" +" from Details where MEMID =" + memid;
rs = stmt.executeQuery(existsUser);
这是示例数据库
NAME: 插口 JILL 约翰 JACK
我需要分别显示每个名字的出现次数,我该怎么办? 例如:Jack-2,Jill -1
我目前有这段代码:
if(count == 0) {
hMap.put(rs.getString("NAME"),1); //get the string
}else {
hMap.put(rs.getString("NAME"),count +1);
}
答案 0 :(得分:2)
可以从不同的SQL查询中完成。
String existsUser = "SELECT name, count(*) AS occurances FROM Details WHERE memid = " + memid + " GROUP BY name";
结果集将有两列“name”和“occurrence”。你马上得到你想要的东西。
答案 1 :(得分:0)
Map<String, Integer> names = new HashMap<String, Integer>();
// sample loop for illustration; loop over your ResultSet if you wish
for String name : results) {
if (names.containsKey(name) {
int count = names.get(name);
names.put(name, ++count);
} else {
names.put(name, 1);
}
}
答案 2 :(得分:0)
Hashmaps不能有重复...
如果要跟踪地图中的重复项,请使用该项作为键,并将出现作为值。
每当您多次看到某个键时,会增加计数器(键的值)。
如果您还没有看到它,请将密钥设置为1
答案 3 :(得分:0)
Map<String, Integer> hMap = new HashMap<String, Integer>();
while (rs.next()) {
String name = rs.get("NAME");
int count = hMap.containsKey(name) ? hMap.get(name) : 0;
hMap.put(name, count + 1);
}
for (Map.Entry<String, Integer> entry : hMap.entrySet()) {
System.out.println(entry.getKey() + "-" + entry.getValue());
}