Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, имеет ли массив в Java определенную длину. Сначала мы разберем, как определить размер массива с помощью встроенного свойства length.
Затем вы узнаете, как сравнить длину массива с ожидаемым значением, чтобы проверить, соответствует ли она желаемому размеру. Наконец, мы рассмотрим, как обрабатывать нулевые (null) массивы при проверке их длины, чтобы избежать возможных ошибок.
Использование свойства length для определения размера массива
На этом этапе мы научимся определять размер массива в Java с помощью свойства length. Понимание размера массива является фундаментальным для перебора его элементов или выполнения операций, которые зависят от количества элементов, содержащихся в нем.
В Java массивы имеют встроенное свойство length, которое хранит количество элементов, которое может вместить массив. Это свойство представляет собой конечную (final) переменную, то есть ее значение не может быть изменено после создания массива.
Создадим простую Java-программу, чтобы показать, как использовать свойство length.
Откройте файл
HelloJava.javaв редакторе WebIDE, если он еще не открыт.Замените все содержимое файла следующим кодом:
public class HelloJava { public static void main(String[] args) { // Declare and initialize an integer array int[] numbers = {10, 20, 30, 40, 50}; // Get the length of the array using the length property int arraySize = numbers.length; // Print the size of the array System.out.println("The size of the array is: " + arraySize); } }Рассмотрим новые части этого кода:
int[] numbers = {10, 20, 30, 40, 50};: Эта строка объявляет целочисленный массив с именемnumbersи инициализирует его пятью целочисленными значениями.int arraySize = numbers.length;: Именно здесь мы используем свойствоlength.numbers.lengthпозволяет получить размер массиваnumbers, и мы сохраняем это значение в целочисленной переменной с именемarraySize.System.out.println("The size of the array is: " + arraySize);: Эта строка выводит значение, хранящееся в переменнойarraySize, в консоль.
Сохраните файл (Ctrl+S или Cmd+S).
Теперь скомпилируем наш модифицированный код. В терминале убедитесь, что вы находитесь в директории
~/project, выполнив командуcd ~/project. Затем выполните следующую команду:javac HelloJava.javaЕсли компиляция прошла успешно, вы не увидите никакого вывода.
Наконец, запустим нашу программу:
java HelloJavaВы должны увидеть следующий вывод:
The size of the array is: 5Этот вывод подтверждает, что свойство
lengthкорректно вернуло количество элементов в нашем массивеnumbers.
Понимание того, как получить размер массива, является важным для многих программистских задач, таких как перебор всех элементов или выделение памяти для новых массивов.
Сравнение с ожидаемой длиной
На этом этапе мы будем использовать наше знание о свойстве length, сравнивая фактический размер массива с ожидаемым. Это распространенная задача в программировании, особенно при валидации входных данных или обеспечении целостности данных.
Мы можем использовать условные операторы (например, операторы if), чтобы проверить, совпадает ли длина массива с определенным значением.
Модифицируем нашу программу HelloJava.java, чтобы сравнить длину массива с ожидаемым значением.
Откройте файл
HelloJava.javaв редакторе WebIDE.Замените текущий код следующим:
public class HelloJava { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; int expectedSize = 5; // We expect the array to have 5 elements int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize); System.out.println("The expected size is: " + expectedSize); // Compare the actual size with the expected size if (arraySize == expectedSize) { System.out.println("The array size matches the expected size."); } else { System.out.println("The array size does NOT match the expected size."); } } }Вот что нового в этом коде:
int expectedSize = 5;: Мы объявляем целочисленную переменнуюexpectedSizeи устанавливаем ее значение равным 5, то есть это размер, который мы ожидаем от массиваnumbers.System.out.println("The expected size is: " + expectedSize);: Мы выводим ожидаемый размер для наглядности.if (arraySize == expectedSize): Это операторif, который проверяет, равно ли значениеarraySizeзначениюexpectedSize. Оператор==используется для сравнения.System.out.println("The array size matches the expected size.");: Эта строка выполняется, если условие в оператореifистинно (размеры совпадают).else: Это ключевое слово представляет блок кода, который будет выполнен, если условие в оператореifложно.System.out.println("The array size does NOT match the expected size.");: Эта строка выполняется, если условие в оператореifложно (размеры не совпадают).
Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте модифицированную программу в терминале:
javac HelloJava.javaЗапустите скомпилированную программу:
java HelloJavaВы должны увидеть вывод, похожий на следующий:
The size of the array is: 5 The expected size is: 5 The array size matches the expected size.Этот вывод показывает, что наша программа правильно сравнила фактический размер массива (5) с ожидаемым размером (5) и вывела соответствующее сообщение.
Вы можете попробовать изменить значение expectedSize или добавить/удалить элементы из массива numbers, чтобы увидеть, как изменится вывод. Это упражнение поможет вам понять, как условная логика работает с свойствами массивов.
Тестирование с нулевыми массивами
На этом последнем этапе мы узнаем, что происходит, когда вы пытаетесь получить доступ к свойству length массива, который не был инициализирован или имеет значение null. Понимание того, как обрабатывать null-значения, является важным для предотвращения ошибок в ваших программах.
В Java переменная, которая объявлена, но не имеет ссылки на объект, имеет значение по умолчанию null. Если вы попытаетесь получить доступ к свойству или методу объекта, равного null, Java выбросит исключение NullPointerException. Это распространенная ошибка времени выполнения, которую вы будете встречать в Java-программировании.
Модифицируем нашу программу, чтобы увидеть, что происходит, когда мы пытаемся получить длину (length) массива, равного null, и как обойти эту ситуацию без ошибок.
Откройте файл
HelloJava.javaв редакторе WebIDE.Замените текущий код следующим:
public class HelloJava { public static void main(String[] args) { int[] numbers = null; // Declare an array but set it to null // Attempt to access the length property (this will cause an error) // int arraySize = numbers.length; // Commenting this out to prevent error // How to safely check for null before accessing length if (numbers != null) { int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize); } else { System.out.println("The array is null. Cannot get its length."); } } }Вот разбор изменений:
int[] numbers = null;: Мы объявляем массивnumbers, но явно устанавливаем его значение равнымnull. Это означает, что переменнаяnumbersв данный момент не ссылается на реальный объект массива в памяти.// int arraySize = numbers.length;: Мы закомментировали строку, которая пытается напрямую получить доступ кnumbers.length. Если бы мы запустили этот код без проверкиif, это привело бы кNullPointerException.if (numbers != null): Это важная часть для обработкиnull. Мы используем операторifдля проверки, не является ли переменнаяnumbersравнойnull. Оператор!=означает "не равно".int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize);: Этот блок кода выполняется только в том случае, еслиnumbersне равноnull. Внутри этого блока можно безопасно получить доступ кnumbers.length.else: Этот блок выполняется, если условие в оператореifложно, то естьnumbersявляетсяnull.System.out.println("The array is null. Cannot get its length.");: Это сообщение выводится, когда массив равенnull, информируя пользователя, что длину массива определить нельзя.
Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте модифицированную программу в терминале:
javac HelloJava.javaЗапустите скомпилированную программу:
java HelloJavaВы должны увидеть следующий вывод:
The array is null. Cannot get its length.Этот вывод показывает, что наша программа правильно определила, что массив был
null, и обработала ситуацию без выбросаNullPointerException.
Обработка null-значений - это очень важный навык в Java-программировании. Всегда проверяйте, не является ли ссылка на объект равной null, прежде чем пытаться получить доступ к его свойствам или методам, чтобы избежать ошибок времени выполнения.
Резюме
В этом практическом занятии (лабораторной работе) мы научились определять размер массива в Java с использованием встроенного свойства length. Это свойство предоставляет простой способ получить количество элементов, которое может содержать массив. Мы продемонстрировали это, создав целочисленный массив, обратившись к его свойству length и вывев результат на экран.
В последующих шагах, вероятно, будут использованы эти основные концепции для сравнения размера массива с ожидаемой длиной и обработки возможных сценариев с нулевыми (null) массивами, что еще больше укрепит наше понимание манипуляций с массивами в Java.



