Свойство capacity

Свойство capacity возвращает текущую вместимость (емкость) внутреннего буфера StringBuilder. Вместимость представляет собой количество символов, которые можно сохранить в буфере без выделения дополнительной памяти. Значение всегда больше или равно длине строки (length).

Синтаксис

kotlinval capacity: Int

Пример

Создадим StringBuilder и проверим его начальную вместимость:

kotlinval sb = StringBuilder()
val cap = sb.capacity
println(cap)

Результат выполнения кода:

kotlinInt 16

Пример

Добавим текст в StringBuilder и проверим как изменилась вместимость:

kotlinval sb = StringBuilder()
sb.append("abcde")

val len = sb.length
val cap = sb.capacity
println("Length: $len, Capacity: $cap")

Результат выполнения кода:

kotlinLength: 5, Capacity: 16

Пример

Добавим больше текста, чтобы превысить начальную вместимость и вызвать увеличение буфера:

kotlinval sb = StringBuilder()
sb.append("abcdefghijklmnopqrstuvwxyz")

val len = sb.length
val cap = sb.capacity
println("Length: $len, Capacity: $cap")

Результат выполнения кода:

kotlinLength: 26, Capacity: 34

Пример

Используем метод ensureCapacity для предварительного выделения памяти и проверим изменение вместимости:

kotlinval sb = StringBuilder()
println("Initial capacity: ${sb.capacity}")

sb.ensureCapacity(100)
println("After ensureCapacity(100): ${sb.capacity}")

Результат выполнения кода:

kotlinInitial capacity: 16
After ensureCapacity(100): 100

Пример

Используем метод trimToSize для оптимизации использования памяти:

kotlinval sb = StringBuilder()
sb.append("abcde")

println("Before trimToSize:")
println("Length: ${sb.length}, Capacity: ${sb.capacity}")

sb.trimToSize()
println("After trimToSize:")
println("Length: ${sb.length}, Capacity: ${sb.capacity}")

Результат выполнения кода:

kotlinBefore trimToSize:
Length: 5, Capacity: 16
After trimToSize:
Length: 5, Capacity: 5

Смотрите также

  • свойство length,
    которое возвращает длину строки в StringBuilder
  • метод ensureCapacity,
    который гарантирует минимальную вместимость буфера
  • метод trimToSize,
    который уменьшает вместимость до фактической длины
  • конструктор StringBuilder,
    который позволяет задать начальную вместимость