【问题标题】:What is the difference between a Collection and a Map? [closed]集合和地图有什么区别? [关闭]
【发布时间】:2013-11-02 06:24:12
【问题描述】:

集合和地图有什么区别?

Map 会是 Collection 的子类吗?

【问题讨论】:

    标签: java collections map


    【解决方案1】:

    来自Map的JavaDoc:

    将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射到一个值。

    来自Collection的JavaDoc:

    一个集合代表一组对象,称为它的元素。 [...] JDK [...] 提供了更具体的子接口的实现,例如 Set 和 List。

    从类层次结构的角度来看,这两个接口相关,即Map 没有扩展CollectionCollection 也没有扩展Map。也就是说,这两个接口都是Java Collection Framework 的一部分。

    【讨论】:

      【解决方案2】:

      查看 JDK 中免费提供的 source code,或者如果您没有,请查看 CollectionMap 的 JavaDoc,您会发现它们都是为对象定义 API 的接口持有其他物品。

      JavaDoc 比我能更好地解释这一点... 来自Collection JavaDoc:“一个集合代表一组对象,称为它的元素。”

      来自Map JavaDoc:“将键映射到值的对象。”

      与其他一些答案所表明的相反,Map 具有不同的 API,并且不是扩展 Collection 的类型之一,例如 ListQueueSet

      【讨论】:

        【解决方案3】:

        一个集合代表一组对象,称为它的元素。一些集合允许重复元素,而另一些则不允许。有些是有序的,有些是无序的。

        将键映射到值的对象。地图不能包含重复的键。每个键最多可以映射到一个值。

        【讨论】:

          【解决方案4】:

          Map 是具有 Key -> Data 结构的 Collection 的更具体版本。 Collection 只是具有用于在 Java 中存储数据的数据结构的接口。

          【讨论】:

            【解决方案5】:

            地图是一个集合。

            集合包括列表、集合和地图。

            列表有:Vector、ArrayList、LinkedList 集合是:HashSet 和 TreeSet 地图有:HashMap 和 TreeMap

            映射是键值对的列表。

            【讨论】:

              【解决方案6】:

              地图和集合之间的区别在于,它们是两个截然不同的东西,几乎没有任何共同之处。一个不是另一个的子类。

              【讨论】:

              • 地图一个集合。
              • @iluxa 很遗憾你被那些没有意识到 Map 没有实现 Collection 接口的人所反对。
              • 我知道,对 :) 好吧,嘿,至少我的程序有效! :)
              • 我不是在谈论继承。集合只是包含其他对象的任何对象。地图举行。所以地图是一个集合。如果你说它们是两个截然不同的东西,那你就错了。
              • 我不是在谈论继承。集合只是一个包含其他对象的对象。地图、数组、列表和其他容器都是集合。如果你的意思是 map 没有实现集合接口,你应该这么说,我很乐意删除我的反对票。
              猜你喜欢
              • 2017-12-03
              • 1970-01-01
              • 2012-04-01
              • 1970-01-01
              • 2010-11-08
              • 1970-01-01
              • 2010-11-05
              • 2010-12-20
              • 2017-07-08
              相关资源
              最近更新 更多