集合和地图有什么区别?
Map 会是 Collection 的子类吗?
来自Map的JavaDoc :
将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射到一个值。
来自Collection的 JavaDoc :
集合表示一组对象,称为其元素。[...] JDK [...] 提供了更具体的子接口的实现,例如 Set 和 List。
从类层次结构的角度来看,这两个接口不Map
相关,即不扩展Collection
,也不Collection
扩展Map
。也就是说,这两个接口都是Java Collection Framework的一部分。
查看 JDK中免费提供的源代码,或者如果您没有源代码,请查看 JavaDoc for Collection
and Map
,您会发现两者都是为包含其他对象的对象定义 API 的接口。
JavaDoc 比我更好地解释了这一点……来自Collection
JavaDoc:“一个集合代表一组对象,称为它的元素。”
来自Map
JavaDoc:“将键映射到值的对象。”
与其他一些答案所表明的相反,它具有不同的 API ,Map
并且不是扩展Collection
、和的类型之一。List
Queue
Set
集合表示一组对象,称为其元素。一些集合允许重复元素,而另一些则不允许。有些是有序的,有些是无序的。
将键映射到值的对象。地图不能包含重复的键。每个键最多可以映射到一个值。
Map 是具有 Key -> Data 结构的 Collection 的更具体版本。Collection 只是具有用于在 Java 中存储数据的数据结构的接口。
地图是一个集合。
集合包括列表、集合和地图。
列表是:Vector、ArrayList、LinkedList 集合是:HashSet 和 TreeSet 映射是:HashMap 和 TreeMap
映射是键值对的列表。
Maps 和 Collections 之间的区别在于它们是两个截然不同的东西,几乎没有任何共同点。一个不是另一个的子类。