几种集合框架的效率问题

原创 2013年12月01日 23:22:56


ArrayList  LinkedList Vector这三个集合框架在操作数据时,即往里面添加新的变量的时候,三个的效率排名。

最开始猜测是ArrayList第一是肯定没有问题的,关键是LinkedList和Vector,当时觉得Vector既然是线程安全的,那应该具有同步锁,那应该效率会慢一点。

结果却是相反的

// 测试ArrayList的性能,这里讲循环的数量尽量加大,使达到更加明显的效果
	public static void arrayListTest() {
		List arraylist = new ArrayList();
		long start = System.currentTimeMillis();
		for (int i = 0; i < 1000000; i++) {
			arraylist.add("abc");
		}
		long end = System.currentTimeMillis();
		System.out.println("arraylist Times = " + (end - start));
	}

	// 测试LinkedList
	public static void linkListTest() {
		List linklist = new LinkedList();
		long start = System.currentTimeMillis();
		for (int i = 0; i < 1000000; i++) {
			linklist.add("abc");
		}
		long end = System.currentTimeMillis();
		System.out.println("linklist Times = " + (end - start));
	}

	// 测试Vector
	public static void vectorTest() {
		Vector vectorlist = new Vector();
		long start = System.currentTimeMillis();
		for (int i = 0; i < 1000000; i++) {
			vectorlist.add("abc");
		}
		long end = System.currentTimeMillis();
		System.out.println("vectorlist Times = " + (end - start));
	}

总结:最慢的是LinkedList,最快的是ArrayList 。我猜想估计是LinkedList底层由于不是有序的线性的。在末尾插入的时候需要改动两个指针。我只能这样理解了,看有没有谁能给出更加正确或者是更加合理的解释。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

另外几种Java集合框架详解续

另外几种Java集合框架详解作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszsfastutil库优于Trove库的地方:Tr...
  • chszs
  • chszs
  • 2016年01月15日 09:47
  • 2190

另外几种Java集合框架详解

另外几种Java集合框架详解作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs1、fastutilfastutil是一个开源...
  • chszs
  • chszs
  • 2016年01月14日 16:42
  • 4143

Java集合框架面试问题集锦

Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性。下面是面试Java核心技术的一些很实用的问题。 Q:最常见...

Java集合框架总结(3)——TreeSet类的排序问题

TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。   1、自然排序     TreeSet会调用集合元素的compareTo(Object obj...

集合框架的讲解--面试常问问题

众所周知在我们使用Java中的类的存储的时候经常会使用一些容器,链表的概念,本文将彻底帮您弄清链表的各种概念和模型!!!!   注意理解哦~~~ 大致框架如下:                 ...

Java集合框架总结(3)——TreeSet类的排序问题

TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。   1、自然排序     TreeSet会调用集合元素的compareTo(Object obj)方法来比较...

Java集合框架总结(3)——TreeSet类的排序问题

Java集合框架总结(3)——TreeSet类的排序问题TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。1、自然排序TreeSet会调用集合元素的compareTo...
  • geyalu
  • geyalu
  • 2016年09月04日 21:03
  • 182

Java集合框架面试问题集锦(六)

Q:Java集合框架都有哪些最佳实践呢? A:根据实际的使用情况选择合适的数据结构,例如固定大小的还是需要增加大小的,有重复元素的还是没有的,需要保持有序还是不需要,遍历是正向的还是双向的,插入...

Java集合框架总结(3)——TreeSet类的排序问题

Java集合框架总结(3)——TreeSet类的排序问题   TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。   1、自然排序     Tr...

Java集合-----java集合框架常见问题

1什么是Java集合API Java集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮助程序员完成一些编程的算法。 简言之,API在上层完成以下几件事: ● 编程更加...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种集合框架的效率问题
举报原因:
原因补充:

(最多只允许输入30个字)