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 上找到。


» 下一篇: JavaParser简介