Функция ensureCapacity

Функция ensureCapacity гарантирует, что емкость StringBuilder будет не меньше указанного минимального значения. Если текущая емкость меньше переданного значения, то она увеличивается. Это полезно для оптимизации производительности при добавлении большого количества символов, чтобы избежать многократных перераспределений памяти.

Синтаксис

kotlinfun ensureCapacity(minimumCapacity: Int): Unit

Пример

Гарантируем емкость не менее 100 символов:

kotlinval sb = StringBuilder()
println("Initial capacity: " + sb.capacity())

sb.ensureCapacity(100)
println("Capacity after ensureCapacity: " + sb.capacity())

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

kotlinInitial capacity: 16
Capacity after ensureCapacity: 100

Пример

Если текущая емкость уже больше запрашиваемой, то функция ничего не делает:

kotlinval sb = StringBuilder(200)
println("Initial capacity: " + sb.capacity())

sb.ensureCapacity(100)
println("Capacity after ensureCapacity: " + sb.capacity())

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

kotlinInitial capacity: 200
Capacity after ensureCapacity: 200

Пример

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

kotlinval sb = StringBuilder()
sb.ensureCapacity(1000)

for (i in 0 until 1000) {
  sb.append('a')
}

println("Final length: " + sb.length)
println("Final capacity: " + sb.capacity())

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

kotlinFinal length: 1000
Final capacity: 1000

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

  • функцию capacity,
    которая возвращает текущую емкость StringBuilder
  • функцию trimToSize,
    которая уменьшает емкость до текущей длины
  • функцию length,
    которая возвращает текущую длину строки
  • функцию append,
    которая добавляет содержимое в StringBuilder