Java ArrayList vs LinkedList Java

ArrayList vs LinkedList Java

本问题已经有最佳答案,请猛点这里访问。

ArrayList和LinkedList有什么区别?我在新波士顿看了一段视频,但我还是很困惑。请用简单明了的英语回答。请不要使用任何高级代码。


ArrayList是由Object[]支持的列表实现。它支持随机访问和动态调整大小。

LinkedList是一个列表实现,使用对head和tail的引用来导航它。它没有随机访问功能,但也支持动态调整大小。

记住,两者都支持get(int index)签名,但这两种实现之间的区别在于性能:对于ArrayList来说,这是进入索引位置的问题,而对于LinkedList来说,您必须沿着对象链走下去(从前面或后面走,这取决于您所索引到的内容)。


对于arraylist,您可以访问每个元素,每个元素都有自己的索引值。例如,如果您想要数组列表中的第三个项目,只需执行arrList.get(2)就可以得到这个值。使用与数组类似的结构生成arraylist。

对于链接列表,您只能访问第一个元素,但每个元素都可以访问下一个元素。所以,为了得到第三个元素,你必须先到第一个,然后到第二个,最后到第三个。把LinkedList想象成一个链子。如果你有链子的第一部分,但是切断了进入第二部分的通路,你也会失去剩下的部分。

在内存、处理时间和易用性方面,它们都有各自的优点和缺点。如果您有任何更具体的问题或需要澄清,请告诉我。