【问题标题】:Java: Difference Between a collection and 'Data Structure' [closed]Java:集合和“数据结构”之间的区别 [关闭]
【发布时间】:2013-01-03 11:22:05
【问题描述】:

在 Java 中,我不理解集合与“数据结构”。在我看来,集合指的是列表、集合、映射、队列,而“数据结构”指的是用于实现集合的数据结构,例如数组、链表或树。比如ArrayList和LinkedList都是集合,但是它们的数据结构分别是一个数组和一个链表。我是正确的,还是我混淆了术语?

【问题讨论】:

  • 虽然简单的问题,但很高兴你问。许多人不问,永远保持怀疑:-)

标签: java data-structures collections


【解决方案1】:

数据结构是表示某种数据的对象的总称,所以链表、数组等都是数据结构。 Java 意义上的集合是指实现Collection 接口的任何类。一般意义上的集合只是一组对象。

【讨论】:

  • 术语集合在其他编程语言中是否有意义,或者它真的是Java使用的术语?
  • 这是一个通用术语。但在 Java 上下文中使用时,通常指的是 java 集合类。
  • +1 而且,根据该定义,Collection 接口的实现是一种提供处理一组对象的方法的数据结构。
  • Java 集合类型有一个值得注意的例外,但它没有实现 Collection:Map。
  • Java 中另一个值得注意的例外是第 3 方类(如 Trove 集合类),它不使用使用java.util.Collection 提供集合功能。 bitbucket.org/trove4j/trove
【解决方案2】:

数据结构是数据在内存存储中的表示方式。集合是如何访问它的。我强调“可以”这个词。

如果将数据存储在 LinkedList 中并对其进行排序,则性能会下降。如果使用 ArrayList 相同的算法,性能将会提高。仅仅通过改变它在内存中的表示方式将有助于各种因素。

您“可以”使用集合表示来访问它,您也“可以”使用“索引”来访问数据。你“可以”也去getFirst、getNext、getPrev。

您的困惑在于内部存储和访问存储之间。将 2 分开。

【讨论】:

    【解决方案3】:

    数据结构具有某种模式的概念,例如房子的表示会列出平方英尺、卧室等内容。这就是通常的意思:域的结构如何表示为数据?

    正如 Jeff 所说,集合只是一组对象。集合确实有结构,但它们的结构完全是组织性的,例如树,或列表或链接列表。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多