使用java存储密钥,值对
我想知道适用于以下senario的java中使用的最佳数据结构。
- 有钥匙和价值。
- 关键是不重复,
- 每个Value都应存储对象集合,其中每个对象中的值将经常更改。
谢谢。
HashMap应该满足您的需求。
HashMap允许您将键值对存储为集合。 HashMap不允许重复键。 您可以使用不同的集合作为值存储在HashMap中。 例如,要创建一个以键作为String并将值作为列表的映射,请按以下方式定义:
Map> = new HashMap>();
此外,还有一些名为MultiMap的集合实现,即映射,其中键与值集合相关联。 MultiMap的两个流行实现是:
- Apacha MultiMap
- 番石榴MultiMap
一种地图 。 除了“我需要一个关键价值的东西”之外,你并没有说太多。 如果需要按插入顺序迭代地图,则会有LinkedHashMap。 如果需要通过升序或降序键值来迭代地图,则会有分类的地图 。 如果地图将由多个线程共享,则并发映射将非常有用。 如果列表中有数十亿个项目并且您不介意对数据进行处理(比如这是一种缓存算法),那么WeakHashMap就适合您。
如果“密钥没有重复”,则表示如果密钥已经存在则插入密钥是违规的,您有几个选项。