Метод capacity
Метод capacity возвращает текущую ёмкость
буфера объекта StringBuilder. Ёмкость - это
количество символов, которое может вместить буфер
без перераспределения памяти. Метод не принимает
параметров и возвращает значение типа int.
Ёмкость всегда больше или равна длине строки,
которую хранит объект.
Синтаксис
sb.capacity()
Пример
Давайте создадим объект StringBuilder и
посмотрим его начальную ёмкость:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());
}
}
Результат выполнения кода:
16
Пример
Если при создании объекта указать строку,
ёмкость будет равна длине этой строки плюс
16:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder("abcde");
System.out.println(sb.length());
System.out.println(sb.capacity());
}
}
Результат выполнения кода:
5
21
Пример
Давайте добавим символы в буфер и посмотрим, как изменится ёмкость при превышении начального размера:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());
sb.append("12345");
sb.append("12345");
sb.append("12345");
sb.append("12345");
System.out.println(sb.length());
System.out.println(sb.capacity());
}
}
Результат выполнения кода:
16
20
34
Как видно из примера, при переполнении буфера
Java автоматически увеличивает ёмкость
по формуле (старая ёмкость * 2) + 2.
Пример
Давайте создадим объект с явно заданной начальной ёмкостью через конструктор:
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder(50);
System.out.println(sb.capacity());
System.out.println(sb.length());
}
}
Результат выполнения кода:
50
0
Смотрите также
-
метод
ensureCapacity,
который задаёт минимальную ёмкость буфера -
метод
length,
который возвращает длину строки -
метод
setLength,
который устанавливает длину строки -
класс
StringBuilder,
который представляет изменяемую строку