在Java中使用TreeMap上的Iterator会干扰密钥的顺序吗?

时间:2012-01-25 10:40:25

标签: java iterator treemap

我想知道如果在Java中使用TreeMap上的迭代器会干扰密钥的顺序吗?

3 个答案:

答案 0 :(得分:8)

来自http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html#keySet()

  

返回此地图中包含的键的Set视图。 set的迭代器按升序返回键。

如果由于某种原因您需要按降序排列键,则可以使用descendingKeySet()

如果要迭代值,可以使用entrySet()

(哇,我以前不知道Map不是Collection ...)

答案 1 :(得分:2)

否 - 它将按照TreeMap定义的顺序迭代,即键的自然顺序,或构造函数中指定的比较器强加的顺序。只是迭代不会改变底层树图中的那个。

答案 2 :(得分:0)

它不会干扰。它为您提供升序的键。

使用entrySet

的迭代器

From official docs - entrySet

public Set<Map.Entry<K,V>> entrySet()

返回此映射中包含的映射的Set视图。集合的迭代器以升序键顺序返回条目。