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

简介: public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub long n = 30000; System.

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


目录
相关文章
|
6月前
|
搜索推荐 Java
数组与字符串操作-高效率的数组方法
本文介绍了高效率的数组方法,包括遍历、查找、插入、删除、排序、合并、拷贝和扩容等操作,并提供了Java代码示例。高效的遍历可使用for循环或增强型for循环,查找则有线性搜索和二分搜索,插入根据是否保持有序有不同的时间复杂度,删除操作通常时间复杂度为O(n)。排序可使用快速、归并或堆排序,合并有序数组用双指针法,大数组拷贝用`System.arraycopy()`,扩容用`Arrays.copyOf()`或ArrayList。注意,这些操作的时间复杂度是平均情况,实际效率还受其他因素影响。示例代码展示了遍历、查找、插入和删除元素的实现。
C#拼接字符串(时间)
C#拼接字符串(时间)
132 0
|
人工智能 C#
C# 字符串拼接
除了可以通过加号来拼接字符串之外,我们还可以使用格式化字符串的方法来拼接字符串。中,字符串没有相加的数学运算,但它可以通过加号。是唯一可以用于字符串运算的算数运算符,别的。这样也可以实现字符串的拼接。也可以和复合赋值运算符。
137 0
C# 字符串拼接
|
缓存 安全 Java
拼接字符串,还能这么玩
大家好,我是指北君。
拼接字符串,还能这么玩
|
Java 容器
实战小技巧4:优雅的实现字符串拼接
相信没有小伙伴没有写过这样的代码,比如说现在让我们来实现一个字符串拼接的场景,怎样的实现才算是优雅的呢? 以将int数组转为英文逗号分隔的字符串为例进行演示
471 0
代码优化之 --- 消除魔法字符串
魔法字符串:指的是,在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或数值。风格良好的代码,应该尽量消除魔法字符串,而由含义清晰的变量代替。 (ES6 --阮一峰) 下面这段代码的意思是:根据不同的状态弹出不同的对话框,其中这个"1"就是个魔法字符串。
2019 0
|
C# 测试技术 程序员
|
算法 编译器 数据处理