为什么 Map 不扩展集合接口
2022-09-02 11:25:21
为什么接口不扩展接口?不是键值对的集合吗?java.util.Map
java.util.Collection
java.util.Map
为什么接口不扩展接口?不是键值对的集合吗?java.util.Map
java.util.Collection
java.util.Map
集合假定元素为一个值。映射假定键/值对的条目。它们可以被设计为重用相同的通用接口,但是它们实现的一些方法是不兼容的,例如
Collection.remove(Object) - removes an element.
Map.remove(Object) - removes by key, not by entry.
您可以将 Map 建模为条目集合,这就是作用所在。Map.entrySet()
有一些共同的方法;、、,但这些作为独立接口不太可能有太大价值。(同样可以代替使用)size()
isEmpty()
clear()
putAll/addAll()
Map.entrySet()
因为接口很大程度上与接口不兼容。如果扩展,该方法会做什么?Collection
Map
Map
Collection
add(Object)
这两个接口具有非常不同的语义。如果需要 as 集合的值或键,则始终可以使用 /。Map
keySet()
values()