【问题标题】:Best Java Datastructure to store key Value Pair [duplicate]存储键值对的最佳 Java 数据结构 [重复]
【发布时间】:2013-01-14 01:55:18
【问题描述】:

可能重复:
Java Hashmap: How to get key from value?
Bi-directional Map in Java?

我想要一个 key value data structure 用于 Android 应用程序。我可以使用Map<K,V>,但在Map 中我无法获取特定值的密钥。

是否有任何好的 Java 数据结构,我可以使用它按值检索键,反之亦然。

【问题讨论】:

标签: java android


【解决方案1】:

即使您不知道 Map 中的任何键,您也可以将 Map 与 entrySet 和 Map.Entry 类一起使用来迭代并获取键和值。

Map <Integer,String> myMap = new HashMap<Integer,String>();

Iterator<Entry<Integer, String>> iterator = myMap.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<Integer,String> pairs = (Map.Entry<Integer,String>)iterator.next();
    String value =  pairs.getValue();
    Integer key = pairs.getKey();
    System.out.println(key +"--->"+value);
}

【讨论】:

  • 当然可以。但随着条目数量的增加,它会越来越慢。他最好使用BiMap
  • 但是他不需要放一个新的 jar 文件并使他的应用程序变得沉重,而且我没有发现性能有任何明显的变化。
  • 您更喜欢随着时间的推移变慢的应用程序,还是最初下载时(一点点)变大的应用程序?
  • 取决于...此外,bi map 将在内部维护两个地图,并且不允许我重复值
  • 这很有意义:如果您有重复的值,您会选择哪个键进行反向查找?这就是 OP 正在尝试做的事情。
【解决方案2】:

使用谷歌番石榴BiMap

如何在Android中使用Guava Libraris是here

【讨论】:

    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 2018-02-22
      • 2010-09-05
      • 1970-01-01
      • 2013-12-27
      • 2021-01-12
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多