• 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快

  • 相关阅读:
    set 用法、小结
    AC 自动机优化
    HDU 2222 Keywords Search 【ac自动机】
    组合数学 隔板法
    BZOJ1303_中位数图_KEY
    初识Trie_对Trie的一些认识
    网络流Edmonds-Karp算法入门
    Codevs1332_上白泽慧音_KEY
    Fliptil_KEY
    2017Noip普及组游记
  • 原文地址:https://www.cnblogs.com/jassy/p/9193062.html
Copyright © 2020-2023  润新知