Как узнать количество индексов в 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;
}