JavaRush /Java блог /Random UA /Клас StringBuilder у Java 8 на практичному прикладі
Нина Можарская
17 рівень
Киев

Клас StringBuilder у Java 8 на практичному прикладі

Стаття з групи Random UA
Клас Stringстворює незмінні рядки. Це означає, що якщо застосувати будь-яку операцію до рядка або операції до рядка, то в результаті буде побудовано новий рядок. Якщо цей новий рядок не привласнити жодної змінної, то результат операції буде втрачено. Відповідно операції над такими рядками обов'язково призводять до створення нового рядка. А це додаткові витрати пам'яті та часу процесора. Якщо операцій над рядком досить багато, часто буває ефективніше скористатися динамічними рядками, які реалізуються класом StringBuilder.
Клас StringBuilder в Java 8 на практичному прикладі - 1
Розглянемо код нижче:
String s = "Some text";
int count = 100;
for(int i = 0; i<100;i++){
   s+=i;
}
**********************
StringBuilder s = new StringBuilder(110);
int count = 100;
s.append("Some text");
for(int i = 0;i<count;i++){
s.append(i);
}
У наведеному коді розглядається те саме завдання. Коли ми до заданого рядка додаємо 100 нових підрядків. У першому прикладі цієї мети використовується клас String, що дуже ефективно, оскільки кожне додавання підрядки веде до побудови нового об'єкта String. А це додаткова витрата пам'яті та часу. У другому прикладі це завдання вирішується за допомогою класу StringBuilder. Ми заздалегідь створюємо об'єкт класу StringBuilder, а потім за допомогою методу appendформуємо потрібний нам рядок, змінюючи вміст створеного об'єкта StringBuilder, але без перестворення самого об'єкта.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ