通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
2015-01-12 14:41
761 查看
/** 运行结果: ---------- 运行 ---------- ArrayList添加1000个数据用时:568312纳秒 ArrayList删除1000个数据用时:105195纳秒 LinkedList添加1000个数据用时:325207纳秒 LinkedList删除1000个数据用时:290250纳秒 输出完成 (耗时 0 秒) - 正常终止 分析: 通过以上结果,我们可以看出LinkedList在对进行添加和删除的操作中,耗费时间少于ArrayList,效率上有明显的优势。 ArrayList集合底层的数据结构是数组,所以对定向查找速度比较快 LinkedList集合底层数据结构是链表,链表结构的特点是增删改速度比较快。 */ import java.util.*; class ListDemo { public static void main(String[] args) { ArrayList<Integer> al = new ArrayList<Integer>(); long startTimeAddal = System.nanoTime(); for(int i=0;i<1000;i++) { al.add(i); } long endTimeAddal = System.nanoTime(); System.out.println("ArrayList添加1000个数据用时:" + (endTimeAddal - startTimeAddal) + "纳秒"); long startTimeRemoveal = System.nanoTime(); for(int i=999;i>=0;i--) { al.remove(i); } long endTimeRemoveal = System.nanoTime(); System.out.println("ArrayList删除1000个数据用时:" + (endTimeRemoveal - startTimeRemoveal) + "纳秒"); LinkedList<Integer> ll = new LinkedList<Integer>(); long startTimeAddll = System.nanoTime(); for(int i=0;i<1000;i++) { ll.add(i); } long endTimeAddll = System.nanoTime(); System.out.println("LinkedList添加1000个数据用时:" + (endTimeAddll - startTimeAddll) + "纳秒"); long startTimeRemovell = System.nanoTime(); for(int i=999;i>=0;i--) { ll.remove(i); } long endTimeRemovell = System.nanoTime(); System.out.println("LinkedList删除1000个数据用时:" + (endTimeRemovell - startTimeRemovell) + "纳秒"); } }
相关文章推荐
- 通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
- 集合中list、ArrayList、LinkedList、Vector的区别、Collection接口的共性方法以及数据结构的总结
- 用代理测试ArrayList和LinkedList的添加和删除元素所用的时间
- JAVA学习第三十五课(常用对象API)—Vector、LinkedList、ArrayList集合演示
- 黑马程序员——List集合中ArrayList、linkedList、Vector的数据结构及特点
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
- 对象容器 - Java对数据结构的封装 - List, ArrayList, LinkedList, Set, SortedSet, HashSet, Map, TreeMap
- 实现一个基于LinkedList的队列数据结构,去除ArrayList集合中重复的元素,
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- 集合总结笔记——ArrayList/LinkedList
- Java集合系列:-----------06List的总结(LinkedList,ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- 对象容器 - Java对数据结构的封装 - List, ArrayList, LinkedList, Set, SortedSet, HashSet, Map, TreeMap
- java集合,ArrayList,LinkedList知识点总结
- java集合--List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- ArrayList与LinkedList的基本添加删除方法 模拟栈 队列
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)