zoukankan      html  css  js  c++  java
  • java--ArrayList,LinkedList应用比较

    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    
    public class ListDemo {
        //jdk8
        public static void main(String[] args){
    //        add("ArrayList",50000);//11
    //        add("LinkedList",50000);//8
    //        add("ArrayList",1000000);//81
    //        add("LinkedList",1000000);//132
    
    //        addFirst("ArrayList",5000);//7
    //        addFirst("LinkedList",5000);//2
    //        addFirst("ArrayList",50000);//160
    //        addFirst("LinkedList",50000);//5
    
    //        remove("ArrayList",5000);//1
    //        remove("LinkedList",5000);//2
    //        remove("ArrayList",1000000);//2
    //        remove("LinkedList",1000000);//15
    //
    
    //        removeFirst("ArrayList",5000);//5
    //        removeFirst("LinkedList",5000);//1
    //        removeFirst("ArrayList",100000);//795
    //        removeFirst("LinkedList",100000);//2
    
    //        removeMiddle("ArrayList",5000);//3
    //        removeMiddle("LinkedList",5000);//23
    //        removeMiddle("ArrayList",100000);//446
    //        removeMiddle("LinkedList",100000);//5637
        }
        public static void add(String s,int a){
            if (s.equals("ArrayList")){
                List<Object> list = new ArrayList<>();
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.add(new Object());
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }else {
                LinkedList<Object> list = new LinkedList<>();
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.add(new Object());
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }
        }
        public static void addFirst(String s,int a){
            if (s.equals("ArrayList")){
                ArrayList<Object> list = new ArrayList<>();
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.add(0,new Object());
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }else {
                LinkedList<Object> list = new LinkedList<>();
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.addFirst(new Object());
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }
        }
        public static void remove(String s,int a){
            if (s.equals("ArrayList")){
                List<Object> list = new ArrayList<>();
                for (int i = 0; i < a; i++) {
                    list.add(i);
                }
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.remove(list.size()-1);
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            } else {
                LinkedList<Object> list = new LinkedList<>();
                for (int i = 0; i < a; i++) {
                    list.add(i);
                }
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.removeLast();
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }
        }
        public static void removeFirst(String s,int a){
            if (s.equals("ArrayList")){
                List<Object> list = new ArrayList<>();
                for (int i = 0; i < a; i++) {
                    list.add(0,new Object());
                }
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.remove(0);
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            } else {
                LinkedList<Object> list = new LinkedList<>();
                for (int i = 0; i < a; i++) {
                    list.add(0,new Object());
                }
                long begin = System.currentTimeMillis();
                for (int i = 0; i < a; i++) {
                    list.removeFirst();
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }
        }
        public static void removeMiddle(String s,int a){
            if (s.equals("ArrayList")){
                List<Object> list = new ArrayList<>();
                for (int i = 0; i < a; i++) {
                    list.add(i);
                }
                long begin = System.currentTimeMillis();
                while (list.size()>0){
                    list.remove(list.size()>>1);//右移/2,左移*2
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            } else {
                LinkedList<Object> list = new LinkedList<>();
                for (int i = 0; i < a; i++) {
                    list.add(i);
                }
                long begin = System.currentTimeMillis();
                while (list.size()>0){
                    list.remove(list.size()>>1);//右移/2,左移*2
                }
                long end = System.currentTimeMillis();
                System.out.println(a+" "+s+":"+(end - begin));
            }
        }
    }
    
    
  • 相关阅读:
    ztree——Cannot read property 'init' of undefined解决方案
    vue——手写swiper子组件,pagination不显示、轮播无效问题解决
    angularJS——数据更新了但是view(视图)层却未更新问题及解决方法
    vue——router.js动态注册组件
    js——ev || window.event,event.srcElement || event.target
    vue——keepAlive第一次无效问题及解决方法
    vue——列表页进详情页,第一次很慢,第二次就很快问题及解决方法
    vue——按需引入elementUI(以时间选择器为例)
    vue——预先指定高度,进行懒加载
    sql 分页查询
  • 原文地址:https://www.cnblogs.com/fly-book/p/11344009.html
Copyright © 2011-2022 走看看