1.数据量为1W的时候
===== ArrayList ====
执行insertArrayList => 耗时:10ms
执行eachArrayList => 耗时:2ms
===== LinkList ====
执行insertLinkList => 耗时:0ms
执行eachLinkList => 耗时:1ms
可以看出来,这个时候linkList明显插入的性能好些,然后遍历差不多。
2.数据量为5W的时候
===== ArrayList ====
执行insertArrayList => 耗时:11ms
执行eachArrayList => 耗时:2ms
===== LinkList ====
执行insertLinkList => 耗时:3ms
执行eachLinkList => 耗时:2ms
5W的数据量也可以看出来linkedList的插入优势,遍历差不多。
3.数据量为50W的时候
===== ArrayList ====
执行insertArrayList => 耗时:19ms
执行eachArrayList => 耗时:5ms
===== LinkList ====
执行insertLinkList => 耗时:14ms
执行eachLinkList => 耗时:7ms
50W的数据量也可以看出来linkedList的插入优势就没那么大了,相差无几,遍历差不多。
4.数据量为100W的时候
===== ArrayList ====
执行insertArrayList => 耗时:22ms
执行eachArrayList => 耗时:5ms
===== LinkList ====
执行insertLinkList => 耗时:21ms
执行eachLinkList => 耗时:7ms
100W的时候基本上可以看出来,插入速度已经差不多了,遍历慢点。
5.数据量为1000W的时候
===== ArrayList ====
执行insertArrayList => 耗时:214ms
执行eachArrayList => 耗时:6ms
===== LinkList ====
执行insertLinkList => 耗时:7988ms
执行eachLinkList => 耗时:72ms
这个时候可以看出来,linkList无论是插入还是遍历都慢了ArrayList很多,这是为什么呢?
测试代码如下:
https://gitee.com/MyAngle/algorithm_learning/blob/master/src/main/java/structure/LinkListTest.java
网友评论