迭代通过地图的内容声明

时间:2010-10-08 12:57:24

标签: java collections

如何以声明方式获取Map的值?

如果地图的内容是 -

Key "Apple" - Value "3"
Key "Banana" - Value "4"
Key "Orange" - Value "8"

我不想 -

Key "Banana" - Value "4"
Key "Apple" - Value "3"
Key "Orange" - Value "8"

如何迭代并获取声明的订单?

3 个答案:

答案 0 :(得分:10)

Map实现不需要保留插入顺序。最常用的 - HashMap不会,例如。

您可以使用java.util.LinkedHashMap,这样做。

  

这个实现与HashMap的不同之处在于它维护着一个运行所有条目的双向链表。此链接列表定义迭代排序,通常是键插入映射的顺序(插入顺序)

答案 1 :(得分:2)

您是否要求让容器以自定义顺序(例如字母顺序)向您返回对象,或者您是否在寻找插入订单?其他人已经建议解决插入顺序。我赞成他们。

如果这不是您想要的,我建议您查看SortedMapTreeMapNavigableMap及其同类。在那里,您可以制作一个自定义comparator,它会返回您选择的顺序。如果你没有制作一个比较器,它默认比关键对象的比较少。

答案 2 :(得分:1)