JavaSE 学习参考:ArrayList和LinkedList区别

    xiaoxiao2021-04-14  84

    ArrayListLinkedList这两个都是List接口的实现类,两者都符合List接口特征允许存储重复元素,逻辑上是有序的,允许通过索引随机访问,但两者还是有区别:

    对于存储空间上ArrayList是实现了基于数组的数据结构数据元素保存在连继分配的内存,占用空间较小,LinkedList基于链表的数据结构,除了保存数据本身之外,还需要保存每个数据元素的前继和后继元素引用。占用内存空间较大。

     对于随机访问getsetArrayList性能上优于LinkedList,因为LinkedList要从表头开始搜索。

    对于添加和删除操作addremoveLinedList比较占优势,因为ArrayList要移动数据。

    示例程序演示向两类列表对象中插入一条记录,性能上差别。

    示例代码:

      public class Test {

    public static void main(String[] args) {

            List<String> aList=new ArrayList<String>();

            for(int i=0;i<1000000;i++){

             //向aList中添加1000个字符串

             aList.add(i+"");

            }

            List<String> bList=new LinkedList<String>();

            for(int i=0;i<1000000;i++){

             //向bListList中添加1000个字符串

             bList.add(i+"");

            }

            

            long begin=System.currentTimeMillis();

            aList.add(100,"List");

            long end=System.currentTimeMillis();

            System.out.println("ArrayList添加操作耗时:"+(end-begin));

            

            begin=System.currentTimeMillis();

            bList.add(100,"List");

            end=System.currentTimeMillis();

            System.out.println("LinkedList添加操作耗时:"+(end-begin));

            

    }

    }

     

     

     

    运行程序,结果如下:

    ArrayList添加操作耗时:2

    LinkedList添加操作耗时:0

     

      
    转载请注明原文地址: https://ju.6miu.com/read-670338.html

    最新回复(0)