繁体   English   中英

Java中的List接口是什么数据结构?

[英]What data structure is a List interface in Java?

我很想知道什么数据结构是 Java 中的 List 接口,以及 C 中与它最匹配的类似事物是什么(如果有的话)。

它是一个接口,而不是一个实现,这意味着实际的数据结构不是固定的——它取决于实现。

List 最重要的特性是它可以保留元素添加的顺序。

如果你想用 C 来做这样的事情,你必须自己构建它(我过去已经这样做了)。 您可能会使用 Java 实际用于实现的模式之一。

  1. 链表。 根据要求,元素链接在一起,可以是单链接的,也可以是双链接的。

  2. 基于数组。 足够简单,尽管您可能需要在列表已满时提供数组的扩展(因此您需要将数组包装在另一个结构中)。

权衡是这样的:链表解决方案允许以恒定成本插入和删除,而数组解决方案可能需要移动数据以进行插入和删除,除了尾部。 数组解决方案允许恒定时间索引,而通过索引查找条目对于链表来说是 O(n)。

Java 等效项称为 LinkedList 和 ArrayList。 这两个类都实现了 List 接口。

列表是一个通用术语。 就像一个变量保存一个数字一样,一个列表可以保存比一个多的项目,并以一种特殊的方式保存它们。 现在这是一种特殊的方式,是您想要的列表的实现,它将确定其数据结构。 C 只有数组和结构体,因此最接近的示例是数组,但是要实现与 Java 中的列表相近的效果,您必须像链表一样自己创建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM