ArrayList.ensureCapacity()
выделяет достаточно памяти для хранения до заданного количества записей. Это на самом деле ничего не помещает в ArrayList
.
ArrayList.size()
считает количество фактических записей, а не текущую емкость.
Ваш цикл просматривает places.size()
перед тем, как вы вызовете places.add()
, чтобы фактически поместить что-либо в places
. Когда places.size()
вызывается в начале цикла, он корректно возвращает 0, потому что на данный момент вы еще ничего не поместили в places
.
Еще один момент. У вас есть метод с именем places
, и внутри этого метода локальная переменная также называется places
. Это рецепт путаницы. Вы должны использовать другое имя для одного из них.