关于ArrayList与LinkedList插入元素性能的对比
来源:互联网 发布:淘宝设计价格表 编辑:程序博客网 时间:2024/05/17 04:31
不多说,直接上代码。
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
0 0
- 关于ArrayList与LinkedList插入元素性能的对比
- 关于LinkedList和ArrayList 插入元素的性能比较疑惑,知道的请指教......
- ArrayList和LinkedList的操作性能对比
- ArrayList和LinkedList的操作性能对比
- ArrayList和LinkedList的操作性能对比
- ArrayList与LinkedList对比
- Linkedlist与ArrayList的各种操作性能对比-单线程对比
- ArrayList,LinkedList的对比
- LinkedList 与ArrayList的性能差异
- LinkedList与ArrayList的性能比较
- ArrayList和LinkedList的对比
- ArrayList和LinkedList性能对比测试
- ArrayList 与 LinkedList性能比较
- ArrayList与LinkedList的普通for循环遍历效率对比
- 关于ArrayList和LinkedList的插入,遍历,删除时间比照
- ArrayList 与 LinkedList的插入效率实践分析
- 测试java的ArrayList与LinkedList的性能
- ArrayList与linkedlist插入效率分析
- 隐式等待
- JavaScript详解<一>
- 基于PCA和GMM算法的电商数据的流量分析
- “大”数字
- Android 理解Window 和 WindowManager
- 关于ArrayList与LinkedList插入元素性能的对比
- 五种SQL Server分页存储过程的方法及性能比较
- QT network
- iOS scrollview的实现
- 当线程函数为C++类成员函数时
- Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1
- 触发器_20151226
- 算法设计题2.26-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 解析XML格式数据