2015-04-25 2 views
0

Я инициализирует список, как это:Java список неисправности странно размера

public List<Edge> edges = new ArrayList<Edge>(8); 

После этого, я хотел бы получить его размер, но следующий код дает нуль.

System.out.println("SIZE: " + edges.size()); 

Нет никакого изменения стоимости или вызова метода между двумя линиями. Что может быть причиной этого?

+1

Созданный вами конструктор создает экземпляр массива с заданной емкостью. 'size()' дает количество элементов в списке, а не длину основного массива. Эти вещи не связаны. –

+0

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#size() –

ответ

0

Размер списка - это количество элементов в нем, а не размер, с которого вы его инициализировали.

+0

Да, но когда я пытаюсь добавить элемент, я получаю исключение. –

+0

Какое исключение? без stacktrace я не могу вам помочь. – Distjubo

+0

'java.lang.IndexOutOfBoundsException: недопустимый индекс 0, размер 0' –

1

Параметр constructor: Вместимость.

Емкость - это количество элементов, которые может содержать основной массив, прежде чем потребуется изменить размер.

Смежные вопросы