2011. április 15., péntek

Stringek előállítása

Java 6-tal string-ek kezelésének sebessége témakör. String-eket szeretnénk összefűzni, valami oknál fogva sokat.
2 megoldást hasonlítok össze:
  • string-ek konkatenálása: str1 + str2
  • StringBuilder osztály használata: sb.append(str1).append(str2)
A próba során 20 darab átlagosan 25 hosszú string-et, 5000 szer egymás után fűzök, az eredmény:
  • 203360 ms
  • 31 ms
Javaslom a StringBuilder használatát...

Java kód:

String all = "";
final int count = 5000;

// String concat example
long t = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
all += s;
}
}
System.out.println((System.currentTimeMillis() - t) + " ms");

// StringBuilder example
t = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
stringBuilder.append(s);
}
}
all = stringBuilder.toString();
System.out.println((System.currentTimeMillis() - t) + " ms");

    Nincsenek megjegyzések:

    Megjegyzés küldése