4

MultiMap不是完全通用的,你有理由吗?

containsEntry(Object key, Object value)
containsKey(Object key)
remove(Object key, Object value)
removeAll(Object key) 
4

2 回答 2

4

看看这个答案,这对于 Guava 的 Multimap 也是如此。此外,您可能需要阅读Kevin Bourrillion 的博客文章(他是 Guava 首席开发人员)解释相同的问题(注意add使用泛型类型E):

真正的区别在于 add() 在使用错误类型调用时会对集合造成“损坏”,而 contains() 和 remove() 则不能。

统一地,Java 集合框架(以及 Google 集合库)的方法从不限制其参数的类型,除非有必要防止集合被破坏。

于 2012-06-19T09:34:56.770 回答
1

我猜是因为他们想要一个与原始java.util.Map接口类似的接口

于 2012-06-19T06:18:27.093 回答