使用java存储密钥,值对

时间:2013-11-09 05:38:42

标签: java data-structures map

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

  1. 有一个键和一个值。
  2. 密钥不重复,
  3. 每个Value都应存储对象集合,其中每个对象中的值将经常更改。
  4. 感谢。

2 个答案:

答案 0 :(得分:7)

HashMap应该满足您的需求。

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

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

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

  • Apacha MultiMap
  • Guava MultiMap

答案 1 :(得分:2)

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

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