事实Map<?,?>并非如此,这让我感到惊讶Collection<?>。
我认为,如果这样声明,那将是很有意义的:
public interface Map<K,V> extends Collection<Map.Entry<K,V>>
毕竟,Map<K,V>是的集合Map.Entry<K,V>,不是吗?
那么,为什么没有这样一个充分的理由实现它呢?
感谢Cletus提供的最权威的答案,但是我仍然想知道为什么,如果您已经可以查看Map<K,V>as Set<Map.Entries<K,V>>(通过entrySet()),那么它不仅扩展了该接口。
如果a Map是a Collection,元素是什么?唯一合理的答案是“键值对”
确实interface Map<K,V> extends Set<Map.Entry<K,V>>会很棒!
但这提供了非常有限的(且不是特别有用的)Map抽象。
但是,如果是这种情况,那么为什么要entrySet由接口指定?它必须以某种方式有用(我认为很容易为该职位辩护!)。
您不能问给定键映射到什么值,也不能在不知道给定键映射到什么值的情况下删除该键的条目。
我并不是说这就是全部Map!它可以并且应该保留所有其他方法(entrySet现在除外,这是多余的)!
哈士奇WWW
MMTTMM
相关分类