ArrayList vs LinkedList Java
ArrayList和LinkedList有什么区别?我在新波士顿看了一段视频,但我还是很困惑。请用简单明了的英语回答。请不要使用任何高级代码。
- arrayList由数组支持,linkedList是双链接元素的列表。两者都实现java.util.list接口
- 如你所说,我的主人!
- @Scribaniwannabe:这不完全是复制品。问的问题不一样。
- 如果重复问题的答案没有意义,那么你应该说什么没有意义
- 对问题@scribaniwannabe references的公认的、极其反对的回答也是这个问题的一个很好的答案。最好等到你可以发表评论,然后在回答中添加评论,提出具体问题。
- @忍者忍者有太多的高级术语
- 我们不知道你不知道什么。这就像是说你不明白水和柠檬水的区别,也许你只是想看看区别。
- 每个人都有开始的地方,但如果你有20多年的编程经验,它将看起来真的,真的很简单。也许这看起来很难,因为你认为这很难,也许你认为存在的差异比实际存在的要大。
- 数据结构列表
- @如果问题是你不懂的术语,维基百科就是你的朋友。O(1)等符号通常被称为"大O符号"。
ArrayList是由Object[]支持的列表实现。它支持随机访问和动态调整大小。
LinkedList是一个列表实现,使用对head和tail的引用来导航它。它没有随机访问功能,但也支持动态调整大小。
记住,两者都支持get(int index)签名,但这两种实现之间的区别在于性能:对于ArrayList来说,这是进入索引位置的问题,而对于LinkedList来说,您必须沿着对象链走下去(从前面或后面走,这取决于您所索引到的内容)。
对于arraylist,您可以访问每个元素,每个元素都有自己的索引值。例如,如果您想要数组列表中的第三个项目,只需执行arrList.get(2)就可以得到这个值。使用与数组类似的结构生成arraylist。
对于链接列表,您只能访问第一个元素,但每个元素都可以访问下一个元素。所以,为了得到第三个元素,你必须先到第一个,然后到第二个,最后到第三个。把LinkedList想象成一个链子。如果你有链子的第一部分,但是切断了进入第二部分的通路,你也会失去剩下的部分。
在内存、处理时间和易用性方面,它们都有各自的优点和缺点。如果您有任何更具体的问题或需要澄清,请告诉我。