【问题标题】:What is the difference between Collection and List in Java?Java中的集合和列表有什么区别?
【发布时间】:2010-07-23 10:40:28
【问题描述】:

CollectionList 在 Java 中的区别是什么?我什么时候应该使用哪个?

【问题讨论】:

  • 公共接口列表扩展集合{}

标签: java collections


【解决方案1】:

首先:ListCollection。但是,它是专门的Collection

Collection 就是这样:一个项目的集合。您可以添加内容、删除内容、迭代内容并查询其中有多少内容。

List 将有关已定义的东西序列的信息添加到它:您可以获取位置 n 处的元素,您可以添加位置 n 处的元素,您可以删除位置 n 处的元素。

Collection 中,您不能这样做:“此集合中的第 5 个元素”未定义,因为没有定义顺序。

还有其他专门的集合,例如Set,它添加了它永远不会包含相同元素两次的功能。

【讨论】:

  • 是的,列表是集合的有序特化(但未排序)+1
  • Java 中的 List 扩展了 Collections 接口并构建了有助于基于位置的检索和删除行为的索引函数
【解决方案2】:

Collection 是 java Collections 层次结构的根接口。 List 是一个定义有序集合的子接口,其他子接口是Queue,它通常会存储准备处理的元素(例如stack)。

下图展示了不同java集合类型之间的关系:

【讨论】:

  • 真的很喜欢你的照片,我在准备 SCJP 的时候看过,但这些天几乎忘记了那些东西。
  • 我必须承认这张图片是poached from this blog。我也是第一次在K&B SCJP book看到这样的图。
  • 你可以从 scjp 证书中学到很多东西,大多数关于这个主题的书都很棒:)
  • 我猜Map 不是Collection
【解决方案3】:

Java API 是回答这个问题的最佳选择

收藏

集合中的根接口 等级制度。一个集合代表一个 一组对象,称为它的 元素。一些集合允许 重复的元素和其他没有。 有些是有序的,有些是无序的。 JDK 不提供任何直接 这个接口的实现:它 提供更多的实现 特定的子接口,如 Set 和 列表。该接口通常用于 传递集合和 在最大的地方操纵它们 需要通用性。

列表(扩展集合)

有序集合(也称为 顺序)。该界面的用户 有精确的控制在哪里 列出每个插入的元素。这 用户可以通过他们的访问元素 整数索引(列表中的位置), 并在列表中搜索元素。

与集合不同,列表通常允许 重复元素。更正式地说, 列表通常允许成对 元素 e1 和 e2 使得 e1.equals(e2),它们通常 允许多个 null 元素,如果它们 完全允许空元素。它不是 难以想象有人可能希望 实施禁止清单 重复,通过抛出运行时 用户尝试时的异常 插入它们,但我们期望这种用法 很少见。

【讨论】:

    【解决方案4】:

    Collection 是 List 的 Super 接口,因此每个 Java 列表也是集合的一个实例。集合只能按顺序迭代(并且没有特定顺序),而 List 允许通过 get(int index) 方法访问特定位置的元素。

    【讨论】:

      【解决方案5】:

      Collection 是 Java Collections 层次结构的主接口,List(Sequence) 是定义有序集合的子接口之一。

      【讨论】:

        【解决方案6】:

        List 和 Set 是 Collection 的两个子类。

        在List中,数据是有特定顺序的。

        在Set中,不能重复包含相同的数据。

        在Collection中,它只是存储没有特定顺序的数据,并且可以包含重复数据。

        【讨论】:

          【解决方案7】:

          Collection 是一个高级接口,用于描述可以包含其他对象集合的 Java 对象。关于它们是如何被访问的,同一个对象的多个副本是否可以存在于同一个集合中,或者顺序是否重要,这并不是很具体。 List 是具体的 有序 对象集合。如果您按特定顺序将对象放入 List 中,它们将保持该顺序。

          决定在哪里使用这两个接口远不如决定你使用的具体实现是什么重要。这将对程序的时间和空间性能产生影响。例如,如果您想要一个列表,您可以使用 ArrayList 或 LinkedList,它们中的每一个都会对应用程序产生影响。对于其他集合类型(例如集合),适用类似的注意事项。

          【讨论】:

            猜你喜欢
            • 2010-11-05
            • 2012-09-03
            • 2017-01-18
            • 2013-11-19
            • 2020-07-23
            • 2010-11-08
            • 2017-12-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多