Длина массива в Java - Вопросы

Всего: 5 вопросов

1. 

Как узнать длину массива в Java?

Длина массива хранится в его публичном поле length, к которому обращаются через точку и без скобок: array.length. Массив — это объект, и его длина заполняется JVM в момент создания. Значение задаётся один раз и больше не меняется. Обратите внимание: length — это поле, поэтому запись со скобками array.length() не скомпилируется.

2. 

Можно ли изменить длину массива после его создания?

Нет. Длина массива фиксируется при создании навсегда, а поле length доступно только для чтения — присваивание array.length = 10; не скомпилируется. Чтобы получить массив другого размера, нужно создать новый и скопировать элементы, удобнее всего через Arrays.copyOf(array, newLength). Если размер должен часто меняться — используйте ArrayList, который расширяется автоматически, а его размер возвращает метод size().

3. 

В чём разница между length, length() и size() в Java?

length — это поле (без скобок), оно есть у массивов: array.length. length() — это метод строк: str.length() у String и StringBuilder. size() — это метод коллекций: list.size() у List, Set, Map. Путаница между полем массива и методом строки — одна из самых частых ошибок новичков и популярный вопрос на собеседовании.

4. 

Как узнать общее количество элементов двумерного (в том числе рваного) массива?

Двумерный массив в Java — это «массив массивов», поэтому array.length даёт только число строк, а array[i].length — длину конкретной строки. Общее количество элементов нужно посчитать, просуммировав длины всех строк: for (int[] row : array) total += row.length;. Для прямоугольного массива можно умножить array.length на array[0].length, но для рваного (jagged) массива, где строки разной длины, это даст неверный результат.

5. 

Что вернёт обращение к length, если массив пустой или равен null?

Для пустого массива (new int[0]) поле length вернёт 0 — это корректный объект нулевой длины. А если ссылка равна null, объекта массива не существует, и обращение к length выбросит NullPointerException. Поэтому массивы, приходящие извне, сначала проверяют на null и только потом читают длину: if (array != null && array.length > 0) { ... }. Пустой массив и null — принципиально разные вещи.

Страница 1 из 1