gpt4 book ai didi

java.util.ArrayList是数据结构/集合/或抽象数据类型的实现?

转载 作者:行者123 更新时间:2023-12-02 05:54:50 24 4
gpt4 key购买 nike

这都是关于术语的。我可以说List是一个抽象数据类型ArrayList是一个数据结构吗?因此,Java Collection Framework 是一组 AST 和相应的 DS(实现)。

最佳答案

接口(interface)(不仅在 Java 中,而且在 C#、Go 等中也如此)是 API 的定义,是一个契约,它指定可以在实现该接口(interface)的实例上调用哪些方法。接口(interface)既不保存任何数据,也不实际实现合约本身。从这个意义上说,我们可以说接口(interface)是一种抽象数据结构List 是一个接口(interface),也就是说,它是一个契约,描述如何操作有序的数据集合。一个接口(interface)可以使用更多的契约方法来扩展另一个接口(interface)。由于 List 接口(interface)描述了有序的数据集合,因此它扩展了 Collection 接口(interface),它只是定义了通用数据集合的契约(例如,不引用特定的排序或插入规则)。同样,我们可以将其描述为一种抽象数据结构

ArrayListList 接口(interface)的可能实现之一。因此,它还实现了 Collection 接口(interface)。因此,它是一个具体数据结构(以及一个集合本身),实现了多个抽象数据结构。然而,Java 中也有一些抽象类,其中有一些未实现的方法。这些也是抽象数据结构,但不是接口(interface)。所以Java中的接口(interface)是一种抽象数据结构,但反之则不然。

此外,可以拥有一个实现接口(interface)(抽象数据结构本身)的抽象数据结构(抽象类)。给你的一个思考练习:弄清楚这是什么意思:)

那么,什么是抽象呢?使用泛型类型参数化的具体类在某种程度上是一种抽象数据结构,因为它抽象了适用于可用于替换泛型类型的不同类的算法。由于 ArrayList 本身就是使用 Java 泛型来定义其操作的数据类型的具体实现之一,因此它本身就是一个抽象数据结构,但其方式与接口(interface)或抽象类。从这个意义上说,抽象数据结构是一个定义不明确的术语。

关于java.util.ArrayList是数据结构/集合/或抽象数据类型的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41989155/

24 4 0