首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Hash Map中搜索重复项并打印出实例的数量

在Hash Map中搜索重复项并打印出实例的数量
EN

Stack Overflow用户
提问于 2013-06-20 07:50:34
回答 4查看 1.1K关注 0票数 0

我使用Hashmap来存储结果集。

代码语言:javascript
复制
HashMap<String,Integer> hMap = new HashMap<String,Integer>();

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

这是示例DB

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

我需要单独显示每个名称的出现次数,我该怎么做?例句: Jack-2,Jill -1

我现在有这样的代码:

代码语言:javascript
复制
 if(count == 0) {
hMap.put(rs.getString("NAME"),1); //get the string 

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

回答 4

Stack Overflow用户

发布于 2013-06-20 08:06:48

可以做到从不同的SQL查询。

代码语言:javascript
复制
String existsUser = "SELECT name, count(*) AS occurances FROM Details WHERE memid = " + memid + " GROUP BY name";

结果集将有两列"name“和"occurances”。你马上就能得到你想要的东西。

票数 2
EN

Stack Overflow用户

发布于 2013-06-20 07:57:07

代码语言:javascript
复制
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);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2013-06-20 07:57:24

哈希映射不能有重复项...

如果您想要跟踪map中的重复项,则使用项作为键,使用实例作为值。

每次你看到一个键不止一次,增加计数器(键的值)。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17203190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档