Как работает "Java" "List" метод "size"?
В Java есть интерфейс List
и метод size()
для вычисления размера List
.
- Когда я вызываю
List.size()
, как он считается? - Он подсчитывается линейно, или подсчет определяется, и только значение возвращается обратно, когда
size()
?
Ответы
Ответ 1
Размер определяется как количество элементов в списке. В реализации не указывается, как работает функция члена() итерации по членам, возврату накопленного счета и т.д.), Поскольку List является интерфейсом, а не реализацией.
В целом, большинство конкретных реализаций List будут хранить свой текущий счет локально, делая размер O (1), а не O (n)
Ответ 2
java.util.List
- это интерфейс, а не класс. Реализация метода size()
может отличаться для разных конкретных реализаций. Разумная реализация метода size()
на java.util.List
было бы инициализировать член экземпляра типа int
до нуля и увеличивать/уменьшать его соответственно, поскольку элементы добавляются/удаляются из List
. Метод size()
может просто вернуть вышеупомянутый член экземпляра. Это, конечно, просто пример. Для получения полной информации вы всегда можете посмотреть на источники встроенных List
. Весь исходный код доступен в течение многих лет.