對採用+、concat、StringBuffer、StringBuilder的連接效率問題,做了一個簡單的測試
public class TestTime {
public static void main(String[] args) {
String s = "0";
long startTime = System.currentTimeMillis();
for ( int i = 0; i < 50000; i++) {
s+="0";
}
long endTime = System.currentTimeMillis();
System.out.println("'+'號連接測試(50000個'0'連接)");
System.out.println((endTime - startTime)+"ms");
//---------------------------------------------------------------------------
s = "0";
startTime = System.currentTimeMillis();
for ( int i = 0; i < 50000; i++) {
s=s.concat("0");
}
endTime = System.currentTimeMillis();
System.out.println("concat測試(50000個'0'連接)");
System.out.println((endTime - startTime)+"ms");
//---------------------------------------------------------------------------
StringBuffer sb = new StringBuffer("0");
startTime = System.currentTimeMillis();
for ( int i = 0; i < 5000000; i++) {
sb.append("0");
}
endTime = System.currentTimeMillis();
System.out.println("StringBuffer連接測試(5000000個'0'連接)");
System.out.println((endTime - startTime)+"ms");
//---------------------------------------------------------------------------
StringBuilder sb2 = new StringBuilder("0");
startTime = System.currentTimeMillis();
for ( int i = 0; i < 5000000; i++) {
sb2.append("0");
}
endTime = System.currentTimeMillis();
System.out.println("StringBuiler連接測試(5000000個'0'連接)");
System.out.println((endTime - startTime)+"ms");
}
}