java - LinkedList 和 ArrayList 实现的区别?

标签 java

<分区>

Possible Duplicate:
When to use LinkedList<> over ArrayList<>?

我看到了 ArrayList 和 LinkedList 的 API,它们似乎是一样的。除了它们的性能差异外,在添加、删除和迭代列表方面也有任何差异。

List arrList = new ArrayList();

List linList = new LinkedList();

List arrList 或 linList 引用实际上是在实现相应的类。这到底是什么意思?

最佳答案

就您的第一个问题而言:它们的性能和内存使用情况是您唯一关心的区别(第三个问题,它们的实际实现细节,不是您关心的问题。)LinkedList s 使用更多内存,并且通过从头部遍历列表来获取第 22 个元素非常慢;但就在列表中间添加和删除元素而言,它们非常棒。 ArrayList 使用的内存较少,获取第 22 个元素的速度非常快——但在中间插入或删除一个元素所花费的时间与列表的大小成正比。

至于你的第二个问题:引用是“实际执行列表”的说法是错误的,所以我真的不知道如何回答。引用变量指的是一个实现了List接口(interface)的对象;这两个类都实现了该接口(interface),因此 List 类型的引用可以引用任一类的对象。

关于java - LinkedList 和 ArrayList 实现的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303379/

相关文章:

java - Textview 不粘在屏幕的右边缘(Android/Java)

java - Android Manifest 文件定制

java - 环境之间的时区差异

java - 下载文件从 X 到 Y 字节

java不兼容类型T无法转换为Enum

java - 访问 SharedPreference 在 Android 中不起作用

java - 说左侧必须解析为变量?

java - android - 计时器不从零开始

javascript - 从 webelement 读取字符串并将其转换为小数

java - OpenCSV 扁平化到层次结构数据解析