今天爱分享给大家带来Linkedlist、Arraylist 内部是如何实现的(更深入的问了 LinkedList 与 ArrayList的区别)【面试题详解】,希望能够帮助到大家。
【参考答案】
ArrayList 的内部实现是基于内部数组 Object[],它更像是对数组实现的一种封装,所
以在向 ArrayList 的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样必然
要花费较多时间。
而 LinkedList 的内部实现是基于一组双向链表实现的存储特性,所以提供了链表一样
访问的 API 接口,它们在性能上有很大的差别。当你访问 Linkedlist 链表中的某个元素时,
就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,
所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元
素时,就应该使用 LinkedList 了。
而当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问
其中的元素时,使用 ArrayList 会提供比较好的性能。