Подскажите, пожалуйста, почему при работе с массивами пишим for(... ; i<list.length;...), а с ArrayList - i<list.size(); те в одном случае используется переменная в другом метод?
Юра
20 уровень
Надо уточнить
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alina
18 ноября 2019, 06:09решение
У массивов размер хранится в поле length, и оно публичное. Такое поле доступно из других классов, в том числе из вашего.
У списков размер также хранится в поле, только оно называется size и является приватным. Такое поле доступно только классу ArrayList. Для получения значения этого поля у списков есть публичный метод size(). Он не делает ничего, кроме того, что возвращает значение поля size.
Это просто разный подход к реализации. В своих классах вы можете реализовывать и так, и так.
+3
Юра
18 ноября 2019, 06:36
Спс, Алина, понял
0
Дмитрий
18 ноября 2019, 06:05
length является константой, которая используется для определения емкости хранения массива, а не количества элементов в массиве.
size() работает с коллекцией, length работает с массивами в java.
а вообще гуглите, полезный навык.
0
Дмитрий
18 ноября 2019, 06:02
разве переменная?
0
Юра
18 ноября 2019, 06:35
Как я понимаю: раз без () , то переменная или нет?
0