相关疑难解决方法(0)

为什么Java Map不扩展Collection?

我对这Map<?,?>不是一个事实感到惊讶Collection<?>.

我认为如果宣布这样的话会有很多意义:

public interface Map<K,V> extends Collection<Map.Entry<K,V>>
Run Code Online (Sandbox Code Playgroud)

毕竟,一个Map<K,V>是集合Map.Entry<K,V>,不是吗?

那么为什么没有这样实现呢?


感谢Cletus提供了最权威的答案,但我仍然想知道为什么,如果您已经可以查看Map<K,V>as Set<Map.Entries<K,V>>(via entrySet()),它不仅仅是扩展该界面.

如果a Map是a Collection,那么元素是什么?唯一合理的答案是"键值对"

确切地说,interface Map<K,V> extends Set<Map.Entry<K,V>>会很棒!

但这提供了非常有限(并且不是特别有用)的Map抽象.

但如果是这种情况那么为什么entrySet界面指定?它必须以某种方式有用(我认为这个位置很容易争论!).

您不能询问给定键映射到的值,也不能删除给定键的条目而不知道它映射到的值.

我不是说这就是它的全部内容Map!它可以而且应该保留所有其他方法(除了entrySet现在多余的方法)!

java oop collections

142
推荐指数
3
解决办法
4万
查看次数

为什么Map不扩展Collection接口

为什么java.util.Map接口不扩展java.util.Collection接口?不是java.util.MapKey-Value对的集合吗?

java collections map

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

collections ×2

java ×2

map ×1

oop ×1