0

一个希望快速的问题:

我计划构建一个 MultiMap 样式结构,内部结构为 Map> 结构,并覆盖以适当方式重定向到内部地图和列表的方法(因此这对用户来说就像一个 multiMap)。当然,可能会有一些附加功能,特别是如果我要使用 Map> 或 Map> 结构的版本,我可能会在 List 版本正常工作后这样做。

我关心的是 entrySet() 和类似的方法:如何覆盖这些以使用相同的内部数据并通过 remove 方法传播?

我怀疑这些集合是通过将它们的 remove 函数重定向到 map 的 remove 函数构建的,因此只要我实现了 MultiMap 的 remove 函数,它就会运行。谁能证实这一点?

Collections for Maps 中的一些静态函数也让我担心。Collections 类如何生成不可修改或同步的表单,有没有办法确保我的 MultiMap 与此兼容?

4

2 回答 2

1

您是否考虑过使用现有的 Multimap 而不是实施新的?

例如,查看Google Guava Multimap ,并查看Multimaps了解静态实用程序方法...

于 2012-06-18T12:14:25.943 回答
1

我想这取决于你将如何创建你的多图。

我做了类似的事情,基本上创建了一个 MultiMap 作为 Map ,其中 Collection 是值。通过在内部使用地图,我的 MultiMap 是一个普通的地图,所有的实用程序基本上都在继续工作。

public class MultiMap<K, V, T extends Collection<V>> implements Map<K, T>
于 2012-06-18T10:34:08.750 回答