Инициализировать ArrayList> с размером в kotlin

Я пытаюсь инициализировать список с размером в конструкторе. Но размер мой список 0.

val seqList = ArrayList<ArrayList<Int>>(N) // This has the Problem
val queries = ArrayList<Query>(Q) // This works like a charm

у меня есть оба N и Q установить как ненулевые входы от пользователя, скажем N = 100 и Q = 100

во время отладки моего кода я узнал, что,queries.size() = 100 но seqList.size() = 0

мое предположение неверно, что seqList также должны быть инициализированы с N ArrayList<Int> объекты.

1 ответов


боюсь, ваше предположение неверно. Цитата из документация of ArrayList:

предоставляет MutableList реализация, который использует массив с изменяемым размером в качестве резервного хранилища.

реализация не обеспечивает способ управления емкостью, as поддержка массива JS может быть изменена сама по себе. Нет скорости преимущество предварительное выделение размеров массива в JavaScript, поэтому эта реализация не включить любая из концепций потенциала и "прироста роста".

конструктор особенности:

ArrayList(initialCapacity = 0))

создает пустой ArrayList.

An пустой ArrayList создается, таким образом, предоставление 100 в качестве аргумента не создаст элементы внутри списка.