LinkedList与ArrayList的性能比较
来源:互联网 发布:我的世界0.14作弊js 编辑:程序博客网 时间:2024/06/12 21:52
package jiben.data;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;public class Listsd {public static void main(String[] args) {// TODO Auto-generated method stub//添加记录是int sum = 10000000;//移除记录数int rm = 300;//修改记录数int cha = 30000;System.out.println("start add "+sum/10000+"W rows; rm "+300+" rows;cha "+cha+" rows");System.out.println("--------------------------------------");System.out.println("");System.out.println("");long n = System.nanoTime();List<String> al = new ArrayList<String>(); Listsd.test(al,sum,rm,cha,n);n = System.nanoTime();al = new LinkedList<String>();Listsd.test(al,sum,rm,cha,n);}public static void test(List<String> al,int sum,int rm,int cha,long n){if(al instanceof ArrayList)System.out.println("ArrayList");elseSystem.out.println("LinkedList");System.out.println("init time(ns) "+(System.nanoTime()-n));long s = System.currentTimeMillis();for(int i=0;i<sum;i++){al.add("hello");}System.out.println("add time "+(System.currentTimeMillis()-s));s = System.currentTimeMillis();ListIterator<String> it = al.listIterator();while(it.hasNext()){it.next();}System.out.println("read time "+(System.currentTimeMillis()-s));s = System.currentTimeMillis();for(int i=0;i<cha;i++)al.set(i, "word");System.out.println("change rows time "+(System.currentTimeMillis()-s));s = System.currentTimeMillis();for(int i=0;i<rm;i++)al.remove(i);System.out.println("remove rows time "+(System.currentTimeMillis()-s));s = System.currentTimeMillis();al.clear();System.out.println("clear time "+(System.currentTimeMillis()-s));System.out.println("--------------------------------------");System.out.println("");System.out.println("");}}
console结果:
结论选择List的时候start add 1000W rows; rm 300 rows;cha 30000 rows
--------------------------------------
ArrayList
init time(ns) 39822
add time 160
read time 11
change rows time 3
remove rows time 3163
clear time 12
--------------------------------------
LinkedList
init time(ns) 756210
add time 2831
read time 79
change rows time 644
remove rows time 0
clear time 66
--------------------------------------
1.如果集合特别长没有删除元素的操作,首选ArrayList.否则选择LinkedList.ArrayList删除元素耗费时间远大于LinkedList.
2.集合不是很大,选择ArrayList(init、add、read的时间很短)
阅读全文
0 0
- LinkedList与ArrayList的性能比较
- ArrayList 与 LinkedList性能比较
- LinkedList与ArrayList比较
- Arraylist与linkedList比较
- Java性能优化-Arraylist与Linkedlist整改查性能比较的简介与内容
- java性能优化-Arraylist与Linkedlist整改查性能比较
- ArrayList、LinkedList、Vector性能比较
- ArrayList和LinkedList性能比较
- ArrayList与LinkedList的简单比较
- ArrayList与LinkedList的简单比较
- ArrayList与LinkedList的简单比较
- java中ArrayList与LinkedList的比较
- LinkedList 与ArrayList的性能差异
- Java中arraylist和linkedlist源码分析与性能比较
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- Java HashMap,ArrayList,LinkedList等的性能比较
- Java Socket应用---慕课网笔记
- lsqnonlin 非线性最小二乘
- 最简单易懂的dagger2示例
- [PAT乙级]1012. 数字分类 (20)
- Hadoop 安装
- LinkedList与ArrayList的性能比较
- 【C++】继承和多态之——菱形继承
- 排序算法三归并排序
- Educational Codeforces Round 26总结
- 蓝桥杯练习题 BEGIN-2 序列求和
- (三)Angular4 英雄征途HeroConquest-初始化组件文件介绍
- 网络协议的综合思考 及 网络体系: OSI vs TCP/IP
- 总结:Distributed systems for fun and profit
- SSH面密码登陆设置失败一直需要输入密码可能原因分析