如何深入排序目录的HashMap?

时间:2012-11-20 17:29:11

标签: java

我创建了一个hashmap,我将目录存储为键,然后将其内容存储为值。 当我遍历哈希映射并打印出所有内容时,我得到了

files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/ek.java
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/nu.java
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/os.java
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/njwqdp/di.html
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/njwqdp/po.html

但我想得到的是

files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/njwqdp/di.html
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/njwqdp/po.html
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/ek.java
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/nu.java
files/abknl/bbxudleuf/jlffhq/y/xwjj/ell/os.java

有什么想法吗?

为此,我正在对哈希映射键进行排序,然后打印每个键的值

3 个答案:

答案 0 :(得分:4)

HashMap通常不会排序。您需要使用SortedMap,例如TreeMap。这个课程将允许您使用自己的Comparator,因此您可以根据需要对其内容进行排序。来自TreeMap(Comparator<? super K>)构造函数Javadoc:

  

构造一个新的空树图,根据给定的比较器排序。

答案 1 :(得分:0)

尝试使用TreeMap Comparator,然后使用putAll中的HashMap个条目。

答案 2 :(得分:0)

如果您需要以HashMap开头,则可以创建new TreeMap(myHashMap)。这将具有相同的映射,但将按排序顺序迭代它们。