首页 > 编程笔记 > Java笔记 阅读:10

Java一维数组的用法(附带实例)

数组是一种能够容纳相同类型的多个数据的基本程序结构,Java 语言中内置了数组类型。

在 Java 中,每种数据类型都有一个对应的数组类型,例如一个整数数组的类型是 int[],一个 String 对象数组的类型是 String[],以此类推。

下面是一个保存字符串的数组:
String[] names;
以上语句中的变量尚未初始化。因此我们需要先用一个新的数组初始化这个变量。为此,需要使用 new 运算符:
names =  new String[100];
当然,可以将这两个语句组合在一起:
String[] names = new String[100];
现在 names 就成为了一个包含 100 个元素的数组,可以通过 names[0] ~ names[99] 的形式来访问数组中的这些元素。如果试图访问不存在的元素,例如 names[-1] 或 names[100],则会发生 ArrayIndexOutOfBoundsException 异常。

数组的长度可通过 array.length 获得。例如,以下循环使用空字符串填充字符串数组:
// 假设我们有一个字符串数组,长度为5
String[] array = new String[5];

// 使用循环将数组中的每个元素填充为空字符串
for (int i = 0; i < array.length; i++) {
   array[i] = "";
}
程序中,先创建了一个长度为 5 的字符串数组 array,然后使用一个 for 循环遍历数组的每个元素,并将每个元素的值设置为空字符串""。

注意,使用 C风格的语法形式来声明数组变量也是合法的,即将数组的 [] 跟在变量名后,而不是数据类型后。但是,这种语法形式并不友好,因为这样的声明形式很容易混淆了变量名 numbers 和类型 int[]。因此,几乎没有 Java 编程人员这样定义数组。

Java数组的构造

当使用 new 运算符构造数组时,它会使用默认值来填充数组:
在构造对象数组时,需要用对象进行填充,示例如下:
BigInteger[] numbers = new BigInteger[100];
此时,数组中还没有任何 BigInteger 对象,只有 100 个 null 引用。需要将它们替换为对 BigInteger 对象的引用。
for (int i = 0; i < 100; i++)
    numbers[i] = BigInteger.valueOf(i);

当然,如果知道数组元素确切的值,也可以直接在花括号内列出它们:
BigInteger[] numbers = new BigInteger[]{BigInteger.ZERO, BigInteger.ONE, BigInteger.valueOf(2), BigInteger.valueOf(3)};

如果不想为数组指定名称,那么可以使用类似初始化的语法。例如,下面的示例将数组赋值给现有数组变量:
new int[]{}

在 Java 中,长度为 0 的数组是合法的。可以使用 new int[0] 或 new int[]{} 这种形式来构造一个数组。例如,如果一个方法返回一个匹配的数组,但是没有特定的输入,那么可以返回一个长度为 0 的数组。需要注意的是,长度为 0 的数组与 null 不同:

相关文章