LinkedList

作者: 尼尔君 | 来源:发表于2019-07-03 11:26 被阅读0次

    先说一下关于LinkedList插入 遍历使用时间的情况

    电脑配置: image.png
    image.png

    使用for循环遍历

    10w的数据量

    
      public static void main(String[] args) {
            LinkedList linkedList = new LinkedList();
    
    
            Long startTime = System.currentTimeMillis();
    
            for (int i = 0 ; i <100000;i++) {
    
                linkedList.add(i);
            }
    
    
            Long endTime = System.currentTimeMillis();
    
            System.out.println("插入完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
            startTime= System.currentTimeMillis();
    
    
            for (int i = 0 ; i<100000;i++) {
                linkedList.get(i);
            }
    
            endTime = System.currentTimeMillis();
    
            System.out.println("遍历完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
    
    
        }
    
    
    
    
    
    插入完成,耗时:0.007s
    遍历完成,耗时:5.69s
    Heap
     PSYoungGen      total 76288K, used 14419K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
      eden space 65536K, 22% used [0x000000076b100000,0x000000076bf14e68,0x000000076f100000)
      from space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
      to   space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
     ParOldGen       total 175104K, used 0K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
      object space 175104K, 0% used [0x00000006c1200000,0x00000006c1200000,0x00000006cbd00000)
     Metaspace       used 3981K, capacity 4572K, committed 4864K, reserved 1056768K
      class space    used 435K, capacity 460K, committed 512K, reserved 1048576K
    
    

    1百万数据量

    
     public static void main(String[] args) {
            LinkedList linkedList = new LinkedList();
    
    
            Long startTime = System.currentTimeMillis();
            
            for (int i = 0 ; i <1000000;i++) {
    
                linkedList.add(i);
            }
    
    
            Long endTime = System.currentTimeMillis();
            
            System.out.println("插入完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
            startTime= System.currentTimeMillis();
    
    
            for (int i = 0 ; i<1000000;i++) {
                linkedList.get(i);
            }
    
            endTime = System.currentTimeMillis();
            
            System.out.println("遍历完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
    
    
        }
    
    
    
    
    
    插入完成,耗时:0.027s
    遍历完成,耗时:701.095s
    Heap
     PSYoungGen      total 76288K, used 49809K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
      eden space 65536K, 76% used [0x000000076b100000,0x000000076e1a45d0,0x000000076f100000)
      from space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
      to   space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
     ParOldGen       total 175104K, used 0K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
      object space 175104K, 0% used [0x00000006c1200000,0x00000006c1200000,0x00000006cbd00000)
     Metaspace       used 3981K, capacity 4572K, committed 4864K, reserved 1056768K
      class space    used 435K, capacity 460K, committed 512K, reserved 1048576K
    
    
    

    可以看出数据量小的情况下 for循环get遍历 的时候10万数据要5秒 数据量大的情况下 100W数据要701秒

    使用迭代器

    10W数据量

     public static void main(String[] args) {
            LinkedList linkedList = new LinkedList();
    
    
            Long startTime = System.currentTimeMillis();
    
            for (int i = 0 ; i <100000;i++) {
    
                linkedList.add(i);
            }
    
    
            Long endTime = System.currentTimeMillis();
    
            System.out.println("插入完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
            startTime= System.currentTimeMillis();
    
    
    
            Iterator iterator = linkedList.iterator();
    
            while (iterator.hasNext()) {
    
                iterator.next() ;
    
            }
            endTime = System.currentTimeMillis();
    
            System.out.println("遍历完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
      插入完成,耗时:0.008s
    遍历完成,耗时:0.002s
    Heap
     PSYoungGen      total 76288K, used 10487K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
      eden space 65536K, 16% used [0x000000076b100000,0x000000076bb3dd68,0x000000076f100000)
      from space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
      to   space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
     ParOldGen       total 175104K, used 0K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
      object space 175104K, 0% used [0x00000006c1200000,0x00000006c1200000,0x00000006cbd00000)
     Metaspace       used 3481K, capacity 4500K, committed 4864K, reserved 1056768K
      class space    used 378K, capacity 388K, committed 512K, reserved 1048576K
    
        }
    
    

    100W数据量

    
      public static void main(String[] args) {
            LinkedList linkedList = new LinkedList();
    
    
            Long startTime = System.currentTimeMillis();
    
            for (int i = 0 ; i <1000000;i++) {
    
                linkedList.add(i);
            }
    
    
            Long endTime = System.currentTimeMillis();
    
            System.out.println("插入完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
            startTime= System.currentTimeMillis();
    
    
    
            Iterator iterator = linkedList.iterator();
    
            while (iterator.hasNext()) {
    
                iterator.next() ;
    
            }
            endTime = System.currentTimeMillis();
    
            System.out.println("遍历完成,耗时:"+(endTime-startTime)/1000.0+"s");
    
    
    
        }
    
    
    插入完成,耗时:0.029s
    遍历完成,耗时:0.011s
    Heap
     PSYoungGen      total 76288K, used 45877K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
      eden space 65536K, 70% used [0x000000076b100000,0x000000076ddcd4f8,0x000000076f100000)
      from space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
      to   space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
     ParOldGen       total 175104K, used 0K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
      object space 175104K, 0% used [0x00000006c1200000,0x00000006c1200000,0x00000006cbd00000)
     Metaspace       used 3485K, capacity 4500K, committed 4864K, reserved 1056768K
      class space    used 378K, capacity 388K, committed 512K, reserved 1048576K
    

    相关文章

      网友评论

        本文标题:LinkedList

        本文链接:https://www.haomeiwen.com/subject/fvcqhctx.html