Длина массива в Java


я объявил массив, как показано ниже:

int[] arr = new int[10];

затем я присвоил массиву следующие значения:

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

затем я объявить и инициализировать переменную типа integer:

int arrayLength = arr.length;

Это будет полезно, чтобы найти фактический размер, но есть ли способ найти логический размер массива?

13 58

13 ответов:

Он содержит выделенный размер,10. Неназначенные индексы будут содержать значение по умолчанию 0 на int.

в первую очередь length Это свойство, так что было бы arr.length вместо arr.length().

и он вернет 10, объявленный размер. Элементы, которые не объявляются явно, инициализируются с помощью 0.

найти длину массива A вы должны использовать length собственность. Это как A.length, Не используйте A.length() его в основном используется для размера строки связанных объектов.

enter image description here

свойство length всегда будет показывать общее выделенное место для проживания во время инициализации.

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

массивы являются статическим выделением памяти, поэтому если вы инициализируете массив целых чисел:

int[] intArray = new int[15];

длина будет всегда 15, независимо от того, сколько индексов заполнены.

и еще одно, когда вы инициализируете массив целых чисел,все индексы будут заполнены "0".

в этом случае, arr.длина вернет 10, размер массива, который вы выделили. Логический размер на самом деле не применяется здесь, так как это массив фиксированной длины.

при инициализации массива:

int[] arr = new int[10];

Java создаст массив из 10 элементов и инициализирует их все до 0. Смотрите спецификация языка Java для получения подробной информации о начальных значениях для этого и других примитивных типов.

в Java ваш "фактический" и "логический" размер одинаковы. Время выполнения заполняет все слоты массива значениями по умолчанию при выделении. Итак, ваш a содержится 10.

'

int array[]=новый int[3]; массив.длина;

Итак, здесь мы создали массив с объемом памяти 3... вот как это выглядит на самом деле

0-й 1-й 2-й ...........> Индекс 2 4 5 ...........> Номер

Так как вы видите, что размер этого массива равен 3, но индекс массива только до 2, так как любой массив начинается с 0-го индекса.

второй оператор' выход должен быть 3, так как длина массива это 3... Пожалуйста, не путайте между значением индекса и длиной массива....

ура!

должно быть:

int a = arr.length;

скобках следует избегать.

Он будет содержать фактический размер массива, потому что вы инициализировали массив, чтобы быть, когда вы объявили его. Java не имеет понятия о "логическом" размере массива, поскольку это касается значения по умолчанию 0 так же логично, как и значения, которые вы установили вручную.

содержит выделенный размер, 10. Остальные индексы будут содержать значение по умолчанию составляет 0.

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

массивы Java фактически фиксированы по размеру, и другие ответы объясняют, как это сделать .длина на самом деле не делает то, что вы ожидаете. Я просто хотел бы добавить, что, учитывая ваш вопрос, что вы можете использовать, это ArrayList, то есть массив, который может расти и сжиматься:

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

здесь .метод size () покажет вам количество элементов в вашем списке, и вы можете увеличить его по мере добавления вещи.

Если вы подразумеваете под "логическим размером", индекс массива, то просто int arrayLength = arr.длина-1; поскольку индекс массива начинается с "0", поэтому логический или" индекс массива "всегда будет меньше фактического размера на"один".