使用java存储密钥,值对

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

  1. 有钥匙和价值。
  2. 关键是不重复,
  3. 每个Value都应存储对象集合,其中每个对象中的值将经常更改。

谢谢。

HashMap应该满足您的需求。

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

Map> = new HashMap>(); 

此外,还有一些名为MultiMap的集合实现,即映射,其中键与值集合相关联。 MultiMap的两个流行实现是:

  • Apacha MultiMap
  • 番石榴MultiMap

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

如果“密钥没有重复”,则表示如果密钥已经存在则插入密钥是违规的,您有几个选项。