0

代码如下所示:

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 循环中使用映射来获取唯一键的计数......即上述数据的计数应该是 3

希望这更容易理解。

4

7 回答 7

2

由于 aMap不包含任何重复的键,您可以使用它qsnMap.size()来获取唯一键的计数。

于 2013-08-29T09:57:11.747 回答
1

的基本合同Map是它不允许重复。所以keys地图中的所有东西都是默认唯一的

这是因为 aMap用于Set保存键并且Set不允许重复元素

javadocSet

不包含重复元素的集合。更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals(e2),并且最多包含一个空元素。正如它的名字所暗示的,这个接口模拟了数学集合抽象

.

于 2013-08-29T09:55:38.120 回答
1

Docs 说,如果您尝试使用已经在 map 中的键放置新值,它将用新值替换该值并返回旧值。

所以如果你想知道键值对的大小/长度/数量,你可以找到它

mapObject.size();

来自 oracle 文档>>

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

参数:

key - 与指定值关联的键

value - 与指定键关联的值

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

于 2013-08-29T09:59:11.637 回答
1

地图中的键是定义唯一的!地图不允许重复键!

你可以在这里阅读这里德语),这里

于 2013-08-29T09:59:56.120 回答
0

map 中的所有键都是唯一的。

所以

Set keySet = map.keySet();
keySet.size();  //this is count of keys

集合的大小是计数。

或只是map.size()您的钥匙数。

于 2013-08-29T09:57:01.940 回答
0

地图总是独一无二的。即使你再次输入相同的钥匙。旧钥匙将被新钥匙取代。

请学习如何使用地图。这个链接应该很有用

于 2013-08-29T09:57:30.843 回答
0

您可以从这个http://docs.oracle.com/javase/tutorial/collections/index.html开始 。先把基础搞清楚。

于 2013-08-29T09:58:30.880 回答