关于ArrayList与LinkedList插入元素性能的对比
2015-12-26 20:02
567 查看
不多说,直接上代码。
结果如下:
LinkedList用时:105
ArrayList用时:105
随机插入LinkedList用了13ms
随机插入ArrayList用了6211ms
package com.集合总结; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Random; /** * @author fengorz * 最终得出结论: * ArrayList的遍历和普通插入性能都由于LinkedList, * 唯独在进行首尾插入的时候LinkedList的性能才能看出来。 */ public class Test3 { private List linkedList,arrayList; private long start1,start2; private long end1,end2; private Random r = new Random(); /** * 测试LinkedList的插入性能 */ public void test1() { linkedList = new LinkedList(); start1 = System.currentTimeMillis(); // 记录执行操作前时间 for (int i = 0; i < 1000000; i++) { linkedList.add("Hello java."); } end1 = System.currentTimeMillis();// 记录执行操作后时间 System.out.println("LinkedList用时:" + (end1 - start1)); } /** * 测试ArrayList的插入性能 */ public void test2() { arrayList = new ArrayList(); start2 = System.currentTimeMillis();// 记录执行操作前时间 for (int i = 0; i < 1000000; i++) { arrayList.add("Hello java."); } end2 = System.currentTimeMillis();// 记录执行操作后时间 System.out.println("ArrayList用时:" + (end2 - start2)); } public void testIndex0_1(){ start1 = System.currentTimeMillis(); for (int i = 0 ; i < 10000; i++) { //linkedList.add(r.nextInt(100000), "Hello java.");//LinkedList的优势是插入位置是集合里比较靠前的效率会比较高。 linkedList.add(80000,"hello List"); } end1 = System.currentTimeMillis(); System.out.println("插入LinkedList集合靠前位置用了"+(end1-start1)+"ms"); } public void testIndex0_2(){ start2 = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { //arrayList.add(r.nextInt(100000), "Hello java."); arrayList.add(80000,"hello List");//如果每次都是插在最前面的话,ArrayList会很坑爹的。 } end2 = System.currentTimeMillis(); System.out.println("插入ArrayList集合靠前位置用了"+(end2-start2)+"ms"); } public static void main(String[] args){ final Test3 t3 = new Test3(); new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub t3.test1(); t3.testIndex0_1(); } }).start(); new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub t3.test2(); t3.testIndex0_2(); } }).start(); } }
结果如下:
LinkedList用时:105
ArrayList用时:105
随机插入LinkedList用了13ms
随机插入ArrayList用了6211ms
相关文章推荐
- app引导页(背景图片切换加各个页面动画效果)
- “大”数字
- 基于PCA和GMM算法的电商数据的流量分析
- 有关sscanf()函数的知识
- 大话设计模式之外观模式(Java版实现) 买股票还是买基金在此揭晓
- javascript--iframe的JS方法,用法!contentWindow 、parent、top、onload
- JavaScript详解<一>
- 隐式等待
- OpenCV【3】---二值化图像
- golang开发环境配置及Beego框架安装
- Scrum Meeting 6
- linux内核ipv4网络部分分层结构及涉入源文件
- LeetCode 145:Binary Tree Postorder Traversal
- 关于List的add方法与addAll方法的区别
- 唐纳德.霍尔《是时候了》
- 题库
- Android手机如何录制屏幕及转GIF
- vim复制文件内容
- 稳定排序和不稳定排序
- 使用HTTP访问网络