有时我需要将多个值存储到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 方式是什么(是的,我知道:“这取决于”)?或者甚至有一个语言内置功能,我可以用它来减少实现工作?