java - Java中的List接口是什么数据结构?
问题描述
我很想知道什么数据结构是 Java 中的 List 接口,以及 C 中最匹配它的类似东西是什么。
解决方案
它是一个接口,而不是一个实现,这意味着实际的数据结构不是固定的——它取决于实现。
List 最重要的特性是它可以保留元素添加的顺序。
如果你想要在 C 中这样的东西,你必须自己构建它(我过去做过)。您可能会使用 Java 实际用于实现的模式之一。
链表。根据要求,元素链接在一起,可以是单链接的,也可以是双链接的。
基于数组。很简单,尽管您可能需要在列表已满时提供数组的扩展(因此您需要将数组包装在另一个结构中)。
权衡是这样的:链表解决方案允许以恒定成本进行插入和删除,而数组解决方案可能需要移动数据以在除尾部之外的任何位置进行插入和删除。数组解决方案允许恒定时间索引,而通过索引查找条目对于链表来说是 O(n)。
Java 等价物称为 LinkedList 和 ArrayList。这两个类都实现了 List 接口。
推荐阅读
- angular - 我想显示从开始日期到结束日期的消息
- wordpress - 权限自行访问服务器上的changend
- c# - 通过 mailkit (smtp) 发送包含以前消息的电子邮件
- lazy-initialization - 如何在打开复杂的 Qt 对话框之前阻止用户交互
- java - 如何远程调试在 ClusterIP 类型的 openshift 集群中运行的基于 java 的服务?
- docker - 如何使 Azure 应用服务容器崩溃
- java - While 循环,直到您随机滚动选定的数字,随机放置的位置
- python - Python randint() 重复数字 - 种子不是问题吗?
- c - 在 DLL GDB Windows 中设置断点
- symfony - 功能学说“不存在”不起作用