如何使用自然的entrySet()顺序迭代HashMap?

Ven*_*ana 7 java collections

我的地图包含按字母顺序排序的键.当我显示它时,我正在使用entrySet().iterator(),但我的结果不是按字母顺序排列.如何才能按顺序获得结果?

Boz*_*zho 14

不,您的地图不按字母顺序保存元素.您可能按此.put(..)顺序,但地图没有定义的迭代顺序.

其他人建议使用SortedSet,但你也可以使用LinkedHashMap.它保证了迭代顺序:

这个实现(LinkedHashMap)使客户端免受HashMap(和Hashtable)提供的未指定的,通常是混乱的排序,而不会导致与TreeMap相关的成本增加


kan*_*kan 12

使用TreeMap:

基于红黑树的NavigableMap实现.地图根据其键的自然顺序排序,或者根据Comparator地图创建时间提供,具体取决于使用的构造函数...