zoukankan      html  css  js  c++  java
  • LinkedList和ArrayList区别

     查询

        LinkedList查询用的遍历,AyyayList查询用的是数组下标,所以对于查询ArrayList性能高于LinkedList

        新增

        新增在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快

        测试一下新增在末尾

        public static void main(String[] args){
              int flag = 100000;

              ArrayList aList = new ArrayList(flag);

              LinkedList lList = new LinkedList();
              Long start1 = System.currentTimeMillis();
              for(int i=0; i<flag;i++)
                   aList.add("a");
              System.out.println(System.currentTimeMillis() - start1);
              Long start2 = System.currentTimeMillis();
              for(int i=0; i<flag;i++)
                    lList.add("a");
              System.out.println(System.currentTimeMillis() - start2);
        }

        测试一下新增在中间


        public static void main(String[] args){
              int flag = 10000;
              ArrayList aList = new ArrayList(flag);
              LinkedList lList = new LinkedList();
              Long start1 = System.currentTimeMillis();
              for(int i=0; i<flag;i++){
                   if(i < flag / 2)
                        aList.add("a");
                   else
                        aList.add(flag / 2, "a");}
              System.out.println(System.currentTimeMillis() - start1);
              Long start2 = System.currentTimeMillis();
               for(int i=0; i<flag;i++){
                   if(i < flag / 2)
                             lList.add("a");
                   else
                            lList.add(flag / 2, "a");}
              System.out.println(System.currentTimeMillis() - start2);
        }
        

        测试一下新增在开始

        
        public static void main(String[] args){
               int flag = 10000;
               ArrayList aList = new ArrayList(flag);
               LinkedList lList = new LinkedList();
                Long start1 = System.currentTimeMillis();
                 for(int i=0; i<flag;i++){
                       aList.add(0 ,"a");
                  }
                System.out.println(System.currentTimeMillis() - start1);
                Long start2 = System.currentTimeMillis();
                for(int i=0; i<flag;i++){
                       lList.add(0 ,"add");
                   }
                System.out.println(System.currentTimeMillis() - start2);
        }

        修改

        修改在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快

         删除

        删除ArrayList比LinkedList快

  • 相关阅读:
    WEP编码格式
    OSK VFS read数据流分析
    科学剖析濒死体验 "复生"者讲述"死"前1秒钟
    Android的开发相对于tizen的开发难度
    minix文件系统分析
    贴给小程序(1) 查找第一个0值
    Linux下的QQ
    OSK USB 驱动
    LRU算法之hash+list实现(转)
    插入排序
  • 原文地址:https://www.cnblogs.com/jassy/p/9193062.html
Copyright © 2011-2022 走看看