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