【问题标题】:Data structure for when key and value are equally "important"当键和值同样“重要”时的数据结构
【发布时间】:2010-07-27 01:32:10
【问题描述】:

所以,这可能是一个愚蠢的问题,但我有一个唯一 ID 到唯一值的映射。有时我想知道某个 ID 的值,有时我想知道某个值的 ID。我搜索的次数多于修改集合。我想知道这里是否有一种特殊的数据结构有意义,或者我是否应该只维护集合的两个副本(永远不会超大)——一个由 ID 键控,一个由值键控。

谢谢!

【问题讨论】:

    标签: language-agnostic data-structures performance mapping


    【解决方案1】:

    维护集合的两个副本是规范的解决方案。

    请注意,如果合适,两个方向可以使用不同的集合类型(例如具有不同哈希函数的哈希表、哈希表和平衡树等)。

    【讨论】:

      【解决方案2】:

      类似于 Google 的 BiMap

      【讨论】:

      • 来到这里发布这个。 BiMap<Integer, String> map = new HashBiMap<Integer,String>(); map.put(1,"Hello"); Integer id = map.inverse().get("Hello");。但几乎实现实际上是在每个 put() 上维护 2 个 HashMap。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2013-01-14
      相关资源
      最近更新 更多