12

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

4

3 回答 3

15

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

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

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

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

于 2013-01-20T02:32:40.117 回答
13

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

于 2013-01-20T02:30:44.373 回答
1

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

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

于 2013-01-20T02:33:24.987 回答