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快

  • 相关阅读:
    git branch用法总结
    vue-router异步加载组件
    vue错误提示 Cannot read property 'beforeRouteEnter' of undefined,刷新后跳到首页
    websocket常见错误
    Websocket原理
    怎么在overflow-y:sroll的情况下 隐藏滚动条
    URI和URL有什么区别
    确定浏览器是否支持某些DOM模块
    将nodeList转换为数组(兼容性)
    软件的三种版本
  • 原文地址:https://www.cnblogs.com/jassy/p/9193062.html
Copyright © 2011-2022 走看看