1. 概述
在使用 Java 时,处理数组是一项基本任务。我们经常需要访问数组的第一个和最后一个元素。
在这个快速教程中,我们将探讨如何在 Java 中高效地获取数组的第一个和最后一个元素。
2. Java 数组简介
在 Java 中,数组是一种数据结构,它允许我们存储固定大小的元素序列。
数组的 length
属性返回数组中的元素数量。 重要的是要注意 length
是一个属性,而不是方法,因此我们通过不加括号的方式访问它:array.length
。
Java 数组的随机访问既快速又高效。 由于 Java 数组提供了基于索引直接访问内存元素的功能,无论索引是多少,访问数组内的任何元素的时间复杂度都是一样的。
接下来,让我们看看如何从数组中获取第一个和最后一个元素。
3. 获取第一个和最后一个元素
我们已经提到,通过索引访问数组中的元素是高效的。Java 数组是零索引的, 即第一个元素的索引是 0,第二个元素的索引是 1,以此类推。
因此,我们可以使用 array[0]
来访问数组中的第一个元素。此外,我们可以通过从 length
属性中减去 1 来确定最后一个元素的索引:array.length - 1
。
现在,让我们看一个从 String
数组中获取第一个和最后一个元素的例子:
String[] array = { "java", "kotlin", "c", "c#", "go", "python", "rust", "ruby" };
assertEquals("java", array[0]);
assertEquals("ruby", array[array.length - 1]);
示例中,我们有一个包含八个 String
值的 String
数组。我们成功地使用 array[0]
和 array[array.length - 1]
获取了第一个和最后一个元素。
4. 如果数组为空怎么办?
我们已经学会了如何通过索引从数组中检索元素。但是,在 Java 中,数组可以是空的。
接下来,让我们看看从空数组中访问第一个和最后一个元素会发生什么:
String[] array = new String[] {};
assertThrows(ArrayIndexOutOfBoundsException.class, () -> {String failing = array[0];});
assertThrows(ArrayIndexOutOfBoundsException.class, () -> {String failing = array[array.length - 1];});
上述测试显示,尝试通过索引访问空数组会引发 ArrayIndexOutOfBoundsException
异常。
检查数组是否为空的一个简单方法是检查其 length
是否等于 0:
String[] array = new String[] {};
assertEquals(0, array.length);
因此,在尝试通过索引访问元素之前,建议先确保数组不为空:
if (array.length > 0){
// ... access elements by index
} else {
// ... handle the empty array case
}
上面的示例展示了基于 if-else
的数组空检查。
5. 总结
在这篇文章中,我们深入探讨了如何从数组中获取第一个和最后一个元素:
- 第一个元素 -
array[0]
- 最后一个元素 -
array[array.length - 1]
通过索引访问数组是高效的。然而,在尝试通过索引检索元素之前,务必确保数组不为空。
如往常一样,每个示例的完整源代码可在 GitHub 上找到。