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快

  • 相关阅读:
    基于边缘保留滤波实现人脸磨皮的算法 | 掘金技术征文
    图像算法---表面模糊算法
    通过人脸照片更换皮肤的方法及系统
    一种数字图像自动祛除斑点的方法
    Leetcode 301.删除无效的括号
    Leetcode 300.最长上升子序列
    Leetcode 299.猜字游戏
    Leetcode 297.二叉树的序列化和反序列化
    Leetcode 295.数据流的中位数
    Leetcode 289.生命游戏
  • 原文地址:https://www.cnblogs.com/jassy/p/9193062.html
Copyright © 2011-2022 走看看