代码如下:
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
希望这更容易理解。
发布于 2013-08-29 17:57:12
因为Map不包含任何重复的键,所以您可以只使用qsnMap.size()来获取唯一键的计数。
发布于 2013-08-29 17:55:38
Map的基本约定是it ‘t allow duplicate keys。因此,默认情况下地图中的所有keys都是唯一的
这是因为Map使用Set来保存键,而Set不允许重复元素
Set的javadoc说
包含不重复的元素的集合。更正式地说,集合不包含e1.equals( e2 )这样的元素e1和e2对,并且最多包含一个空元素。顾名思义,此接口对数学集合抽象进行建模
。
发布于 2013-08-29 17:59:12
文档说,如果您尝试将新值与已在映射中的键放在一起,它将用新值替换新值,并返回旧值。
因此,如果您想知道键值对的大小/长度/数量,可以通过以下命令找到
mapObject.size();来自oracle docs>>
public V put(K密钥,V值)将指定值与此映射中的指定密钥关联。如果映射之前包含键的映射,则替换旧值。
参数:
key -指定值要与之关联的密钥
value -要与指定键关联的值
返回:返回与key关联的前一个值,如果没有key的映射,则返回null。( null返回值也可以指示映射以前将null与键关联。)
https://stackoverflow.com/questions/18507669
复制相似问题