java ArrayList<String> 转 String[] 效率对比

开发时看到同事将ArrayList转为String的时候是手动遍历来做的,好奇为啥不实用jdk提供的方法呢,于是乎做了一个实验,两种方法的性能相差是相当惊人的:

import java.util.ArrayList;
import java.util.List;

public class ArrayListToStringArrComp {
	private static List<String> baseData;
	private static final int ARRAY_SIZE = 10000;
	public static void main(String[] args) {
		long begTime;
		long endTime;
		baseData = new ArrayList<String>();
		for (int i = 0; i < ARRAY_SIZE; i++){
			baseData.add(String.valueOf(i));
		}
		
		begTime = System.nanoTime();
		String[] s2 = (String[])baseData.toArray(new String[ARRAY_SIZE]); 
		endTime = System.nanoTime();
		System.out.println("自带方法耗时: " + (endTime - begTime));

		begTime = System.nanoTime();
		String[] s1 = new String[ARRAY_SIZE];
		for(int i = 0; i < ARRAY_SIZE; i++){
			s1[i] = baseData.get(i);
		}
		endTime = System.nanoTime();
		System.out.println("手工遍历耗时: " + (endTime - begTime));
	}
}

 在我电脑上的输出是:

   自带方法耗时: 89000

   手工遍历耗时: 2005000

哪个更好,很显然了。

猜你喜欢

转载自javashuaibushuai.iteye.com/blog/2219763