介绍
在这个实验中,你将学习如何检查 Java 数组是否具有特定的长度。首先,我们会了解如何使用内置的 length 属性来确定数组的大小。
接着,你将学习如何将数组的长度与预期值进行比较,以验证它是否符合所需的大小。最后,我们将探讨在检查数组长度时如何处理空数组,以避免潜在的错误。
使用 length 属性获取数组大小
在这一步中,你将学习如何使用 length 属性来确定 Java 数组的大小。了解数组的大小对于遍历其元素或执行依赖于元素数量的操作至关重要。
在 Java 中,数组有一个内置的属性 length,它存储了数组可以容纳的元素数量。这个属性是一个常量(final variable),这意味着在数组创建后,其值不能被更改。
让我们创建一个简单的 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)。
现在,让我们编译修改后的程序。在终端中,通过运行
cd ~/project确保你位于~/project目录下。然后,运行:javac HelloJava.java如果编译成功,你将不会看到任何输出。
最后,让我们运行程序:
java HelloJava你应该会看到以下输出:
The size of the array is: 5这个输出证实了
length属性正确地返回了我们numbers数组中的元素数量。
了解如何获取数组的大小对于许多编程任务至关重要,例如遍历所有元素或为新数组分配内存。
与预期长度进行比较
在这一步中,我们将基于对 length 属性的理解,把数组的实际大小与预期大小进行比较。这在编程中是一项常见任务,特别是在验证输入或确保数据完整性时。
我们可以使用条件语句(如 if 语句)来检查数组的长度是否与特定值匹配。
让我们修改 HelloJava.java 程序,将数组的长度与预期值进行比较。
在 WebIDE 编辑器中打开
HelloJava.java文件。将当前代码替换为以下内容:
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 数组中添加/删除元素,看看输出会如何变化。这个练习有助于你理解条件逻辑如何与数组属性一起工作。
对空数组进行测试
在这最后一步中,你将探究当尝试访问未初始化或为 null 的数组的 length 属性时会发生什么。了解如何处理 null 值对于防止程序出错至关重要。
在 Java 中,已声明但未分配对象引用的变量的默认值为 null。如果你尝试访问 null 对象的属性或方法,Java 会抛出 NullPointerException。这是你在 Java 编程中会遇到的常见运行时错误。
让我们修改程序,看看当尝试访问 null 数组的 length 属性时会发生什么,以及如何妥善处理这种情况。
在 WebIDE 编辑器中打开
HelloJava.java文件。将当前代码替换为以下内容:
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的情况下处理了这种情况。
在 Java 编程中,处理 null 值是一项非常重要的技能。在尝试访问对象的属性或方法之前,一定要检查对象引用是否为 null,以避免运行时错误。
总结
在本次实验中,我们学习了如何使用 Java 内置的 length 属性来确定数组的大小。该属性提供了一种简单的方式来获取数组可容纳的元素数量。我们通过创建一个整数数组、访问其 length 属性并打印结果来进行了演示。
后续步骤可能会基于这一基本概念,将数组的大小与预期长度进行比较,并处理可能出现的空数组情况,从而进一步巩固我们对 Java 中数组操作的理解。



