【问题标题】:Optimized way to handle constant map data处理常量地图数据的优化方式
【发布时间】:2013-08-05 15:41:46
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java


    【解决方案1】:

    EnumMapHashMap 之间的主要 differenceEnumMap 是专门为 Map 实现的专用 Enum 作为键。

    所以,如果您的 keysEnum 类型,则选择 EnumMap,否则选择 HashMap。

    ENUM作为键有一些好处,因为

    Map 的键应该是不可修改且唯一的,这可以使用 Enum 来保证。

    喜欢阅读:EnumMap or HashMap if lookup key is a String

    【讨论】:

      【解决方案2】:

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

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

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

      EnumMap 是一个专门用于枚举类型 Keys 的 Map 实现。如果您的键是 Enum 类型,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/EnumMap.html.So

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多