LinkedList和ArrayList优缺点

LinkedList和ArrayList优缺点

数组与链表中查找与更新的操做效率数组

LinkedList与ArrayList都实现了List接口,但它们的数据结构有差别,各有其优缺点,主要表如今不一样操做的效率。数据结构

ArrayList的优势在于,对get和set的调用花费常数时间。其缺点是新项的插入和现有项的删除代价极其昂贵(O(N^2)),除非变更是在ArrayList的末端进行。ide

LinkedList的优势在于,新项的插入和现有项的删除均开销很小(假设变更项位置已知)。其缺点是它不容易做索引,所以对get的调用是昂贵(O(N))的,除非调用很是接近表的端点。索引

所以,当不须要频繁更新List时,使用ArrayList效率高、空间开销小(数组数据密集),反之,使用LinkedList效率高。接口