Как узнать количество индексов в ArrayList

У меня есть массив:

List<String> list = new ArrayList<>();

list.add("word1");

Если я использую функцию list.size, то мне выдаст 1, но я хочу узнать количество индексов;

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
System.out.println(list.size());

Я хочу узнать сколько лишних ячеек создалось в ArrayList.


Ответы (1 шт):

Автор решения: AlekseiGaile

Данный код покажет размер Листа и его Capacity при заполнении ArrayList:

 public static void main(String[] args) throws Exception {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 17; i++) {
            list.add(i);
            System.out.format("Size: %2d, Capacity: %2d%n",
                    list.size(), getCapacity(list));
        }
    }

    static int getCapacity(List<?> l) throws Exception {
        Field dataField = ArrayList.class.getDeclaredField("elementData");
        dataField.setAccessible(true);
        return ((Object[]) dataField.get(l)).length;
    }
→ Ссылка