几种集合框架的效率问题


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底层由于不是有序的线性的。在末尾插入的时候需要改动两个指针。我只能这样理解了,看有没有谁能给出更加正确或者是更加合理的解释。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiangnan129/article/details/17061671
个人分类: java
想对作者说点什么? 我来说一句

数据结构和Java集合框架(完整版)

2013年07月05日 64.96MB 下载

没有更多推荐了,返回首页

不良信息举报

几种集合框架的效率问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭