Метод ensureCapacity
Метод ensureCapacity класса StringBuilder
проверяет текущую емкость буфера и, если она
меньше переданного значения, увеличивает ее.
В первый параметр мы передаем минимально
необходимую емкость в символах. Метод не
изменяет содержимое строки и не влияет на
длину, а только резервирует место для
будущих операций вставки и добавления.
Если текущая емкость уже больше или равна
переданному значению, ничего не происходит.
Синтаксис
sb.ensureCapacity(minimumCapacity)
Пример
Давайте создадим объект StringBuilder
и увеличим его емкость до 50 символов:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder("abcde");
System.out.println("Before: " + sb.capacity());
sb.ensureCapacity(50);
System.out.println("After: " + sb.capacity());
System.out.println("Content: " + sb);
}
}
Результат выполнения кода:
Before: 21
After: 50
Content: abcde
Пример
Если переданное значение меньше текущей емкости, то ничего не изменится:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder("abcde");
sb.ensureCapacity(50);
System.out.println("Before: " + sb.capacity());
sb.ensureCapacity(10);
System.out.println("After: " + sb.capacity());
}
}
Результат выполнения кода:
Before: 50
After: 50
Пример
Метод ensureCapacity полезен перед
массовым добавлением символов, чтобы избежать
многократного перераспределения памяти:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder();
sb.ensureCapacity(100);
for (int i = 0; i < 5; i++)
{
sb.append(i);
}
System.out.println("Capacity: " + sb.capacity());
System.out.println("Content: " + sb);
}
}
Результат выполнения кода:
Capacity: 100
Content: 01234
Смотрите также
-
метод
capacity,
который возвращает текущую емкость буфера -
метод
append,
который добавляет данные в конец строки -
метод
insert,
который вставляет данные в указанную позицию -
класс
StringBuilder,
который представляет изменяемую строку