【发布时间】:2013-08-05 15:41:46
【问题描述】:
我已经有一个字符串格式的地图数据,例如 -
in = ch.ed,
au = nsw.syd,
us = ny.nj,
ca = on.to,
有人可以建议我应该在 java 中使用哪种数据结构来放入这些数据。 “Enummap”或“hashmap”或是否有任何其他建议? 如果我使用“enummap”有什么好处。 我的地图将在整个包裹中保持不变。
谢谢
【问题讨论】:
标签: java
我已经有一个字符串格式的地图数据,例如 -
in = ch.ed,
au = nsw.syd,
us = ny.nj,
ca = on.to,
有人可以建议我应该在 java 中使用哪种数据结构来放入这些数据。 “Enummap”或“hashmap”或是否有任何其他建议? 如果我使用“enummap”有什么好处。 我的地图将在整个包裹中保持不变。
谢谢
【问题讨论】:
标签: java
EnumMap 和 HashMap 之间的主要 difference 是 EnumMap 是专门为 Map 实现的专用 Enum 作为键。
所以,如果您的 keys 是 Enum 类型,则选择 EnumMap,否则选择 HashMap。
将ENUM作为键有一些好处,因为
Map 的键应该是不可修改且唯一的,这可以使用 Enum 来保证。
【讨论】:
如果您想要排序后的地图,请使用 Tree Map。
如果要求以与放置条目相同的顺序对条目进行迭代,请考虑 LinkedHashMap
否则,如果您不关心上述任何条件,则始终更喜欢 HashMap
EnumMap 是一个专门用于枚举类型 Keys 的 Map 实现。如果您的键是 Enum 类型,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/EnumMap.html.So。
【讨论】:
您可以选择静态HashMap,它可以在应用程序启动时进行初始化和填充。其他classes 只能从 Map 中获取值。您可以将 map 包裹在 bean 周围,并且所有 classes 都可以访问该 bean。我想告诉你的是,你应该选择singleton 设计模式。
【讨论】: