什么情况下用 ArrayList,什么情况下用 LinkedList?
什么情况下用 ArrayList,什么情况下用 LinkedList?
小猪的回答
需要List的时候,无论任何时候都不要用LinkedList,ArrayList是唯一正确的选择。
需要queue或者stack,可以用ArrayDeque,同样不需要LinkedList。
LinkedList一开始的目的就是一个reference implementation,虽然理论上,它可以支持更快的插入和删除,但实际上,它并没有暴露足够的内部细节来让你更快的插入和删除,所以所谓更快的插入和删除,约等于没有。而LinkedList最大的缺点是更大的GC压力,因为它内部需要为每一个数据创建并维护一个node,这带来了大量的小对象。当List足够大的时候,它的性能会远远低于ArrayList。
所以,最后再说一遍就是,在现实中,没有任何需要使用LinkedList的场景。
via 知乎热榜 (author: 小猪)