一个有希望的快速问题:
我计划构建一个MultiMap风格的结构,在内部使用Map>结构进行结构化,并覆盖方法,以便以适当的方式重定向到内部映射和列表(因此这对用户来说就像一个multiMap )。当然,可能还会有一些额外的特性,特别是如果我要这样一个结构为Map>或Map>的版本,我很可能会在列表版本工作之后再这样做。
我关心的是entrySet()和类似的方法:如何覆盖这些方法以使用相同的内部数据并通过remove方法进行传播?
我怀疑这些集合是使用重定向到map的remove函数的remove函数构建的,所以如果我实现MultiMap的remove函数,它就会表现出来。有人能证实这一点吗?
另外,Collections for Maps中的一些静态函数让我担心。Collections类如何生成不可修改或同步的表单,是否有方法确保我的MultiMap与此兼容?
发布于 2012-06-18 18:34:09
我猜这取决于你将如何创建你的multimap。
我做了类似的事情,基本上创建了一个MultiMap作为地图,其中集合就是值。只需在内部使用地图,我的MultiMap就是一个正常的地图,所有的实用工具基本上都能继续工作。
public class MultiMap<K, V, T extends Collection<V>> implements Map<K, T>发布于 2012-06-18 20:14:26
您是否考虑过使用现有的Multimap而不是实现新的Multimap?
以Google Guava Multimap为例,查看Multimaps中的静态实用程序方法...
https://stackoverflow.com/questions/11080953
复制相似问题