В чем разница между .size()
и .length
? .size()
только для массивов, а .length
только для массивов?
Разница между методами размера и длины?
Ответ 1
length является константой, которая используется для определения емкости хранения массива, а не количества элементов в массиве
Пример:
int a[] = new int[5]
a.length
всегда возвращает 5, который называется емкостью массива, поэтому длина всегда возвращает значение CAPACITY. но
"количество элементов в массиве называется размером"
Пример:
int a[] = new int[5]
a[0] = 10
В результате получится a.size = 1
и a.length = 5
.
size()
работает с коллекцией, length
работает с массивами в java
Ответ 2
size()
- это метод, указанный в java.util.Collection
, который затем наследуется каждой структурой данных в стандартной библиотеке. length
- это поле на любом массиве (массивы - это объекты, вы просто не видите класс обычно), а length()
- это метод на java.lang.String
, который в любом случае является тонкой оболочкой на char[]
.
Возможно, по дизайну массивы и строки неизменяемы, и все подклассы коллекции верхнего уровня изменяемы. Итак, где вы видите "длину", вы знаете эту константу, и где вы видите "размер", это не так.
Ответ 3
length variable:
В Java массив (не java.util.Array) является предопределенным классом в самом языке. Чтобы найти элементы массива, дизайнеры использовали переменную длины (длина - член поля в предопределенном классе). Они должны были указать length(), чтобы иметь однородность в Java; но не сделал. Причина в производительности, выполнение переменной длины быстрее, чем вызов метода length(). Это похоже на сравнение двух строк с == и equals(). equals() - вызов метода, который занимает больше времени, чем выполнение оператора ==.
size() method:
Используется для нахождения количества элементов, присутствующих в классах коллекции. Он определен в интерфейсе java.util.Collection.
Ответ 4
Я ставлю (не указан язык) size()
возвращает свойство length
.
Однако допустимый цикл for
должен выглядеть так:
for (int i = 0; i < values.length; i++) {}
Ответ 5
Исходя из синтаксиса, я предполагаю, что это некоторый язык, который является потомком C. В соответствии с тем, что я видел, length
используется для простых элементов коллекции, таких как массивы, и в большинстве случаев это свойство.
size()
является функцией и используется для динамических объектов коллекции. Однако для всех целей использования вы не найдете каких-либо различий в результатах, используя любой из них. В большинстве реализаций размер просто возвращает свойство length.