代码如下所示:
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
希望这更容易理解。
答案 0 :(得分:2)
由于Map
不包含任何重复键,您只需使用qsnMap.size()
即可获得唯一键的数量。
答案 1 :(得分:1)
Map
的基本合同是不允许重复密钥。因此,地图中的所有keys
都默认为唯一
这是因为Map
使用Set
来保存密钥,Set
不允许重复元素
Set
的javadoc说
包含无重复元素的集合。更正式的,集合 不包含元素e1和e2对,使得e1.equals(e2)和at 大多数一个null元素。正如其名称所暗示的,这个界面模型 数学集抽象
答案 2 :(得分:1)
文档说,如果您尝试使用已在地图中的键添加新值,则会使用新值替换该值并返回旧值。
因此,如果您想知道键值对的大小/长度/数量,可以使用
找到它mapObject.size();
来自oracle docs&gt;&gt;
公共V放(K键, V值) 将指定的值与此映射中的指定键相关联。如果地图以前包含该键的映射,则替换旧值。
<强>参数:强>
键 - 与指定值相关联的键
值 - 与指定键关联的值
返回: 与键关联的上一个值,如果没有键的映射,则返回null。 (null返回也可以指示映射先前将null与key关联。)
答案 3 :(得分:1)
答案 4 :(得分:0)
地图中的所有键都是唯一的。
所以
Set keySet = map.keySet();
keySet.size(); //this is count of keys
该组的大小是计数。
或简称map.size()
是您的钥匙计数。
答案 5 :(得分:0)
地图永远是独一无二的。即使你再次使用相同的密钥。旧密钥将被新密钥替换。
请了解如何使用地图。 This link应该是有用的
答案 6 :(得分:0)
您可以从http://docs.oracle.com/javase/tutorial/collections/index.html开始。首先要清楚基础知识。