Klasa StringBuilder i StringBuffer

Metody dla tych klas są takie same i są one mutowalne. Rożnica pomiędzy klasami polega na możliwości zastosowania w systemie/programie wielowątkowej. Klasą która może być wykorzystana w wielowątkowości jest StringBuffer. Z drugiej jednak strony instancje klasy StringBuilder są nieznacznie szybsze od StringBuffer z powodu braku synchronizacji.

W przypadku budowania długich napisów najlepiej jest korzystać z tych klas i metody append() . Jako parametr przyjmuje napisy, liczby lub obiekty i dokleja je do budowanego napisu. Jest ona znacznie szybsza i efektywniejsza niż zwykłe doklejanie stringów poprzez konkatenacje „+”. przy konkatenacji dodatkowo trzeba pamiętać że każde „doklejenie” napisu tworzy całkiem nowy obiekt.

Przykład zastosowania StringBuildera i metody append()

StringBuilder builder = new StringBuilder();
for (int i = 0; i < 10; i++) {
    builder.append(i);
    builder.append(" ");
}
String numbers = builder.toString();
System.out.println(numbers);

Wynik:
0 1 2 3 4 5 6 7 8 9 

Metoda insert() -Pozwala wstawić konkretny znak, wartość lub ciąg znaków do istniejącego już ciągu znaków. Pierwszym argumentem metody jest index (licząc od 0), na który chcemy coś wstawić, drugim jest jaka chcemy wstawić. Np. do podanego powyżej ciągu znaków wstawię kota.

StringBuilder builder = new StringBuilder();
  for (int i = 0; i < 10; i++) {
    builder.append(i);
    builder.append(" ");
}
String numbers = builder.toString();
System.out.println(builder.insert(2, "cat "));

0 cat 1 2 3 4 5 6 7 8 9 

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *