java:我想使用键值对,并且键或者值可以重复,在java中找得到对应的类吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:我想使用键值对,并且键或者值可以重复,在java中找得到对应的类吗?相关的知识,希望对你有一定的参考价值。

因为hashmap的键是唯一的。hashset和ArrayList又不是键值对形式

没有。因为意义就是键是独立的。唯一的。

我认为你可以从其他业务方面下手。数据可用实体保存。这样放map和List都是很容易取出键相同的数据。

好吧。下面的哥们的确行。可以。不过必须New的形式。不然也会覆盖。
参考技术A public class faga 
public static void main(String[] args) 
Map m = new IdentityHashMap();
m.put(new String("1"),"java");
m.put(new String("1"),"js");
m.put(new String("2"), "php");
System.out.println(m);

问题已解决,请看我代码,

输出结果:1=java, 1=js, 2=php


请采纳~~~

参考技术B 你要先确认一件事,如果键重复,获取时希望返回什么。确认以后再讨论别的。

存储键值对的最佳 Java 数据结构 [重复]

【中文标题】存储键值对的最佳 Java 数据结构 [重复]【英文标题】:Best Java Datastructure to store key Value Pair [duplicate] 【发布时间】: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 数据结构,我可以使用它按值检索键,反之亦然。

【问题讨论】:

看番石榴的BiMap 你可以实现一个小方法来做到这一点;这将是 4 行代码;而不是使用任何第三方。 @Deepak 对于这样的一般用例,最好使用经过良好测试和广泛接受的库。你会避免很多痛苦。 ***.com/questions/10699492/bi-directional-map-in-java 和 ***.com/questions/1670038/… 的完全重复 ***.com/questions/1383797/…的第二个答案 【参考方案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】:

The best data structure would be Java HashMaps check this link你可以使用get(Object key)方法

【讨论】:

以上是关于java:我想使用键值对,并且键或者值可以重复,在java中找得到对应的类吗?的主要内容,如果未能解决你的问题,请参考以下文章

java 请求参数键值对重复问题

Java On-Memory 高效键值存储

存储键值对的最佳 Java 数据结构 [重复]

ES6中Map()和Set()的用法详解

java里面的map是啥?

c++multimap问题,假设我有一些键值对<charA,charB>,我想让程序告诉我charA有那些值,而且重复了几次谢谢