如何解决Java中的List接口是什么数据结构?
我想知道Java中的List接口是什么数据结构,以及如果有的话,C中最能匹配它的类似东西是什么。
解决方法
这是一个接口,而不是一个实现,这意味着实际的数据结构不是固定的-它取决于实现。
列表的最重要特征是它可以保留添加元素的顺序。
如果您想要用C语言编写这样的东西,就必须自己构建(我过去也做过)。您可能会使用Java实际用于实现的模式之一。
-
链接列表。元素根据需要链接在一起,可以是单链接或双链接。
-
基于数组。足够简单,尽管您可能需要在列表已满时提供数组的扩展(因此,您需要将数组包装在另一个结构中)。
权衡是这样的:链表解决方案允许以恒定的成本进行插入和删除,而数组解决方案可能需要将数据移动到插入和删除位置,而尾部除外。数组解决方案允许进行恒定时间索引,而对于链表,按索引查找条目为O(n)。
Java等效项称为LinkedList和ArrayList。这两个类都实现了List接口。
,列表是一个通用术语。就像一个变量保存一个数字一样,一个列表可以保存比一个多的项目,并以一种特殊的方式保存它们。现在这是一种特殊的方式,是您想要的列表的实现,它将确定其数据结构。 C 语言只有数组和结构体,所以最接近的例子是数组,但是要实现与 Java 中列表相似的效果,您必须像链表一样自己创建它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。