3

我想知道适用于以下 senario 的 java 中使用的最佳数据结构。

  1. 有一个键和一个值。
  2. 并且密钥不重复,
  3. 每个值都应该存储对象的集合,其中每个对象中的值会经常更改。

谢谢。

4

2 回答 2

7

HashMap应该满足您的需求。

HashMap 允许您将键值对存储为集合。HashMap 不允许重复键。您可以使用不同的集合作为值存储在 HashMap 中。例如,要创建一个键作为字符串,值作为列表的映射,定义如下:

Map<String, List<String>> = new HashMap<String, List<String>>();

也有这种集合的实现称为 MultiMap 即映射,其中键与值集合相关联。MultiMap 的两个流行实现是:

  • 阿帕查多图
  • 番石榴多图
于 2013-11-09T05:39:40.170 回答
2

一种地图。除了“我需要一个键值对”之外,您并没有说太多。如果您需要按插入顺序迭代地图,有一个 LinkedHashMap。如果您需要通过升序或降序键值来迭代地图,则有排序地图。如果映射将由多个线程共享,则并发映射将很有用。如果列表中有数十亿个项目,并且您不介意数据流血(比如说这是一种缓存算法),那么WeakHashMap适合您。

如果“密钥不重复”的意思是如果密钥已存在则插入它是违规的,那么您有几个选择。

于 2013-11-09T05:51:19.730 回答