0

我正在使用 Hashmap 来存储结果集。

HashMap<String,Integer> hMap = new HashMap<String,Integer>();

String existsUser = "select NAME" +" from Details where MEMID =" + memid;
rs = stmt.executeQuery(existsUser);

这是示例数据库

姓名:杰克·吉尔·约翰·杰克

我需要分别显示每个名称的出现次数,我该怎么做?例如:杰克-2,吉尔-1

我目前有这个代码:

 if(count == 0) {
hMap.put(rs.getString("NAME"),1); //get the string 

   }else {
hMap.put(rs.getString("NAME"),count +1); 
   }        
4

4 回答 4

2

可以从不同的 SQL 查询中完成。

String existsUser = "SELECT name, count(*) AS occurances FROM Details WHERE memid = " + memid + " GROUP BY name";

结果集将有两列“名称”和“出现次数”。你马上得到你想要的。

于 2013-06-20T00:06:47.807 回答
0

哈希图不能有重复...

如果要跟踪地图中的重复项,则将项目用作键,将出现次数用作值。

每次您多次看到一个键时,都会增加计数器(键的值)。

如果您还没有看到它插入并将密钥设置为 1

于 2013-06-19T23:57:24.237 回答
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);
    }
}
于 2013-06-19T23:57:06.617 回答
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());
    }
于 2013-06-20T00:10:05.893 回答