您的位置:首页 > 其它

几种拼接字符串的效率问题 .

2015-03-16 12:38 253 查看
public class test { 
 
/** 
* @param args 
*/ 
public static void main(String[] args) { 
// TODO Auto-generated method stub 
		long n = 30000;
		System.out.println("Start... "+n);  
		
        long start1 = System.currentTimeMillis();   
        String s1 = new String("hello");   
        for (long i = 0; i < n; i++)   
        {   
            s1+="拼接字符串的时间";   
        }   
        long end1 = System.currentTimeMillis();   
        long time1 = end1 -start1;   
        System.out.println("用String+=拼接字符串的时间"+time1);   
           
        long start2 = System.currentTimeMillis();   
        String s2 = new String("hello");   
        for (long i = 0; i < n; i++)   
        {   
            s2=s2+"拼接字符串的时间";   
        }   
        long end2 = System.currentTimeMillis();   
        long time2 = end2 -start2;   
        System.out.println("用String=String+拼接字符串的时间"+time2); 
        
        long start3 = System.currentTimeMillis();   
        String s3 = new String("hello");   
        for (long i = 0; i < n; i++)   
        {   
            s3=s3.concat("拼接字符串的时间");   
        }   
        long end3 = System.currentTimeMillis();   
        long time3 = end3 -start3;   
        System.out.println("用String.concat拼接字符串的时间"+time3); 
        
        long start4 = System.currentTimeMillis();   
        StringBuffer s4 = new StringBuffer("hello");   
        for (long i = 0; i < n; i++)   
        {   
        	s4.append("拼接字符串的时间");   
        }   
        long end4 = System.currentTimeMillis();   
        long time4 = end4 -start4;   
        System.out.println("用StringBuffer.append拼接字符串的时间"+time4);   
           
        long start5 = System.currentTimeMillis();   
        StringBuilder s5 = new StringBuilder("hello");   
        for (long i = 0; i < n; i++)   
        {   
        	s5.append("拼接字符串的时间");   
        }   
        long end5 = System.currentTimeMillis();   
        long time5 = end5 -start5;   
        System.out.println("用StringBuilder.append拼接字符串的时间"+time5);   
        
        System.out.println("End...");  
} 
 
}


贴出一组检测数据如下:

用String+=拼接字符串的时间27468
用String=String+拼接字符串的时间25813
用String.concat拼接字符串的时间12265
用StringBuffer.append拼接字符串的时间14
用StringBuilder.append拼接字符串的时间8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: