for循环中字符串拼接的效率

对比for循环中字符串拼接的几种方法

  1. +号拼接
	public static void test1() {
		long startTime = System.currentTimeMillis();
		String str = "";
		for(int i=0;i<10000;i++) {
			str += "hello";			
		}
		long endTime = System.currentTimeMillis()-startTime;		
		System.out.println("使用+号拼接:"+endTime+"毫秒");
	}

2.concat拼接

public static void test2() {
		long startTime = System.currentTimeMillis();
		String str = "";
		for(int i=0;i<10000;i++) {
			str.concat("hello");			
		}
		long endTime = System.currentTimeMillis()-startTime;		
		System.out.println("使用concat拼接:"+endTime+"毫秒");
	}

3.StringBuffer拼接

	public static void test3() {
		long startTime = System.currentTimeMillis();
		StringBuffer sb = new StringBuffer();
		for(int i=0;i<10000;i++) {
			sb.append("hello");
		}
		long endTime = System.currentTimeMillis()-startTime;	
		System.out.println("使用StringBuffer拼接:"+endTime+"毫秒");		
	}

4.StringBuilder拼接

	public static void test3() {
		long startTime = System.currentTimeMillis();
		StringBuilder sb = new StringBuilder();
		for(int i=0;i<10000;i++) {
			sb.append("hello");
		}
		long endTime = System.currentTimeMillis()-startTime;	
		System.out.println("使用StringBulider拼接:"+endTime+"毫秒");		
	}

运行结果:
for循环中字符串拼接的效率_第1张图片
循环10000次后,发现除了+号拼接耗时较久,其余均为0;此时将StringBuffer、StringBuilder、concat中的循环次数提升至1000000次,再次对比结果如下:
for循环中字符串拼接的效率_第2张图片
结论:相比来说,循环次数较大时,使用StringBuilder效率会高一点。

你可能感兴趣的:(日常,demo,java,拼接字符串)