2

我已经有一个字符串格式的地图数据,例如 -

in = ch.ed, 
au = nsw.syd, 
us = ny.nj, 
ca = on.to,

有人可以建议我应该在java中使用哪种数据结构来放入这些数据。“Enummap”或“hashmap”或者如果有任何其他建议?如果我使用“enummap”有什么好处。我的地图将在整个包裹中保持不变。

谢谢

4

3 回答 3

3

和之间的主要区别在于它是专门针对as key的专门实现。EnumMapHashMapEnumMapMapEnum

因此,如果您keys是这种类型Enum ,请选择EnumMap其他类型的 HashMap。

ENUM作为钥匙 有一些优点,因为

地图的键应该是不可修改和唯一的,这可以使用枚举来保证。

更喜欢阅读:如果查找键是字符串,则为 EnumMap 或 HashMap

于 2013-08-05T15:48:41.483 回答
0

如果您想要排序后的地图,请使用 Tree Map。

如果要求以与放置条目相同的顺序迭代条目,请考虑 LinkedHashMap

否则,如果您不关心上述任何条件,则始终更喜欢 HashMap

EnumMap 是与枚举类型 Keys 一起使用的专用 Map 实现。请参阅http://docs.oracle.com/javase/7/docs/api/java/util/EnumMap.html。因此,如果您的键是 Enum 类型,请选择它。

于 2013-08-05T15:45:05.900 回答
0

您可以选择静态HashMap,它可以在应用程序启动时进行初始化和填充。其他classes只能从 Map 中获取值。您可以将其包装map在 a 周围,bean并且只有该 bean 才能被 all 访问classes。我想告诉你的是,你应该选择singleton设计模式。

于 2013-08-07T06:41:06.143 回答