Ilekroć łączymy ciąg, na każdej konkatenacji tworzona jest nowa kopia ciągu, a oba ciągi są kopiowane po jednym znaku na raz. Powoduje to złożoność czasową O (n) (McDowell).
Jeśli chcesz poprawić wydajność, użyj
StringBuilder
jeden z jej konstruktorów ma następującą składnię: (. Zmienny sekwencję znaków Pamiętaj ciągi są immmutable)
public StringBuilder(int size); //Contains no character. Initial capacity of 'size'.
StringBuilder pomaga rozwiązać ten problem problem po prostu tworząc zmienną tablicę wszystkich łańcuchów. kopiowanie ich na ciąg tylko wtedy, gdy jest to konieczne (McDowell).
StringBuilder str = new StringBuilder(0);
str.append(someStr);
str.append(3);
str.append("]");
referencyjny:
McDowell, Gayle Laakmann. Cracking The Coding Interview, wydanie szóste. Wydrukować.
"Stringbuilder (platforma Java SE 8)". Docs.oracle.com. N.p., 2016. Web. 4 czerwca 2016.
Zarówno nie robi żadnej różnicy. – Smit
@Smit: Kompilator użyje 'StringBuilder' do konkatenacji ciągów znaków – jlordo
@Smit: użycie StringBuilder doprowadziłoby do tego samego kodu bajtowego, co kod w pytaniu, lub gorzej. –