首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代hashmap以获取唯一键的计数

迭代hashmap以获取唯一键的计数
EN

Stack Overflow用户
提问于 2013-08-29 17:52:27
回答 7查看 2.2K关注 0票数 0

代码如下:

代码语言:javascript
复制
Map<string , list> qsnMap =new hashmap <string , list>;
If(qsnMap !=null){
    Iterator<Map.Entry<string , list>> entries = 
    qsnMap.entrySet().iterator();
    While(entries.hasNext()){
        Map.Entry<string , > entry = entry.next();
        String mapKey = entry.getKey();
    }
}

假设数据如下所示

"123,abc“"abc”

"234,gdd“"gdd”

"434,dhd“"dhd”

"123,mnb“"mnb”

在这里,我想使用数字作为键,然后在while循环中使用map来获得唯一键的计数……即上述数据的计数应该是3

希望这更容易理解。

EN

回答 7

Stack Overflow用户

发布于 2013-08-29 17:57:12

因为Map不包含任何重复的键,所以您可以只使用qsnMap.size()来获取唯一键的计数。

票数 2
EN

Stack Overflow用户

发布于 2013-08-29 17:55:38

Map的基本约定是it ‘t allow duplicate keys。因此,默认情况下地图中的所有keys都是唯一的

这是因为Map使用Set来保存键,而Set不允许重复元素

Set的javadoc说

包含不重复的元素的集合。更正式地说,集合不包含e1.equals( e2 )这样的元素e1和e2对,并且最多包含一个空元素。顾名思义,此接口对数学集合抽象进行建模

票数 1
EN

Stack Overflow用户

发布于 2013-08-29 17:59:12

文档说,如果您尝试将新值与已在映射中的键放在一起,它将用新值替换新值,并返回旧值。

因此,如果您想知道键值对的大小/长度/数量,可以通过以下命令找到

代码语言:javascript
复制
mapObject.size();

来自oracle docs>>

public V put(K密钥,V值)将指定值与此映射中的指定密钥关联。如果映射之前包含键的映射,则替换旧值。

参数:

key -指定值要与之关联的密钥

value -要与指定键关联的值

返回:返回与key关联的前一个值,如果没有key的映射,则返回null。( null返回值也可以指示映射以前将null与键关联。)

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

https://stackoverflow.com/questions/18507669

复制
相关文章

相似问题

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