ArrayList与LinkedList
ArrayList与Linkedlist的增删改查问题以及集合选择问题线程:安全:Vector 不安全:ArrayList,LinkedList 增删多:LinkedList 查询多:ArrayList 1. ArrayList为什么查询快: 底层是数组,在内存中开辟空间,是连续的,查询时可以直接定位到查询的位置(根据偏移量查询) ? LinkedList为什么查询慢: 因为LinkedList是底层是链表,查询时单链表是[元素|下一个元素地址这种结构]只能从第一个依次开始查,在Java中LinkedList是双连边结构[上一个元素地址|元素|下一个元素地址]这种结构查询时,判断指针是距离首端近还是尾端近,离首近则从第一个开始查询,否则从末尾开始。(速度有所提高),越是查询的是中间元素速度越慢。 ? 2.ArrayList为什么增删慢: 增删时因为是数组结构当删除一个元素是其他元素都要移动,就是慢的原因,当然在末尾增加就没有这个问题也会快一些。 ? LinkedListt为什么增删快: 增删时时链表结构,在内存中结构元素存储不连续增删时最多影响两个元素。就是快的原因。 ? ? ? ?加油:? ? ? ? ? ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |