有时我需要将多个值存储到Map
. 我知道解决此问题的几种方法,例如:
- 创建自己的
Map<K,V,W>
实现- 很难写,可以很容易地重用,如果需要更多的值就会出现问题
- 使用 n
Map<K,V>
- 易于实现,需要很多对象,密钥被保存很多次:如果你在某个地方删除一个密钥会发生什么?
- 使用 a
Map<K, Map<I, V>>
并使用第二个键存储值- 易于实现,在迭代时可能会出现问题(空值),还需要跟踪值键
- 创建一个存储
K, V, W, ...
和使用List<MyStorageClass>
(或Map<K, MyStorageClass>
) 的类- 似乎是一个不错的选择:易于实现,但可能需要实现许多接口(例如
Compareable
)
- 似乎是一个不错的选择:易于实现,但可能需要实现许多接口(例如
- ...可能还有更多
但我想知道最佳实践 Java 方式是什么(是的,我知道:“这取决于”)?或者甚至有一个语言内置功能,我可以用它来减少实现工作?