Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 数组(Arrays)

在本教程中,我们将学习在Java中使用数组。我们将借助示例学习声明,初始化和访问数组元素。

 数组是相似类型数据的集合。它是一个容器,用于保存单一类型的数据(值)。例如,您可以创建一个数组,它可以保存100个int类型的值。

在Java中,数组是一种基本构造,它允许您存储和访问大量的常规值。

如何声明数组?

在Java中,这是我们如何声明数组的方法。

dataType[] arrayName;

让我们举个实例

double[] data;

 这里,data是一个数组,可以保存double类型的值。

但是,可以容纳多少个元素?

 好问题!我们必须为数组分配内存。内存将定义数组可以容纳的元素数。

data = new Double[10];

 在这里,数组的大小是10。这意味着它可以容纳10个元素(10个双精度浮点类型值)。数组的大小也称为数组的长度。

注意:一旦定义了数组的长度,就不能在程序中对其进行更改。

让我们再举一个实例:

int[] age;
age = new int[5];

这age是一个数组。它可以容纳5个int类型的值。

 在Java中,我们可以在一条语句中声明和分配数组的内存。例如,

int[] age = new int[5];

Java数组索引

 在Java中,数组中的每个元素都与一个数字相关联。这个数字称为数组索引。我们可以使用这些索引来访问数组的元素。例如,

int[] age = new int[5];
Java数组索引
Java数组索引

在这里,我们有一个长度为5的数组。在图中,我们可以看到每个元素都由一个数字(数组索引)组成。数组索引始终从0开始。

现在,我们可以使用索引号来访问数组的元素。例如,要访问数组的第一个元素,我们可以使用age[0],第二个元素使用age[1]访问,依此类推。

注意:如果数组的长度是n,则数组的第一个元素将是arrayName[0],最后一个元素将是arrayName[n-1]。

如果我们没有将任何值存储到数组中,数组将单独存储一些默认值(0表示int类型,false表示布尔类型)。例如,

class ArrayExample {
    public static void main(String[] args) {
    
        //创建一个长度为5的数组 
        int[] age = new int[5];
     
        //使用索引号访问数组的每个元素
        System.out.println(age[0]);
        System.out.println(age[1]);
        System.out.println(age[2]);
        System.out.println(age[3]);
        System.out.println(age[4]);
    }
}

输出

0
0
0
0
0

 在上面的示例中,我们创建了一个名为age的数组。但是,我们没有给数组赋值。因此,当我们访问数组的各个元素时,默认值被打印到屏幕上。

在这里,我们分别访问数组的元素。有一种更好的方法可以使用循环(通常为for循环)访问数组元素。例如,

class ArrayExample {
    public static void main(String[] args) {

        //创建一个长度为5的数组
        int[] age = new int[5];

        //使用for循环访问元素
        for (int i = 0; i < 5; ++i) {
            System.out.println(age[i]);
        }
    }
}

输出

0
0
0
0
0

如何在Java中初始化数组?

 在Java中,我们可以在声明期间初始化数组,也可以在以后根据需要在程序中初始化。

声明期间初始化数组

 下面是如何在声明期间初始化数组。

int[] age = {12, 4, 5, 2, 5};

此语句创建一个名为age的数组,并使用大括号中提供的值初始化它。

 数组的长度由大括号内用逗号分隔的值的数目决定。在我们的实例中,age的长度是5。

元素存储在数组中
Java数组初始化

让我们编写一个简单的程序来打印此数组的元素。

class ArrayExample {
    public static void main(String[] args) {

        //创建一个数组
        int[] age = {12, 4, 5, 2, 5};

        // 通过数组索引值访问数组元素
        for (int i = 0; i < 5; ++i) {
            System.out.println("元素索引 " + i +": " + age[i]);
        }
    }
}

输出

元素索引  0: 12
元素索引  1: 4
元素索引  2: 5
元素索引  3: 2
元素索引  4: 5

如何访问数组元素?

如前所述,我们可以使用数字索引轻松访问和更改数组的元素。例如,

class ArrayExample {
    public static void main(String[] args) {

        int[] age = new int[5];

        //向第三个元素插入14
        age[2] = 14;

        //将34插入第一个元素
        age[0] = 34;

        for (int i = 0; i < 5; ++i) {
            System.out.println("元素的索引 " + i +": " + age[i]);
        }
    }
}

输出

元素的索引 0: 34
元素的索引 1: 0
元素的索引 2: 14
元素的索引 3: 0
元素的索引  4: 0

示例:Java数组

 下面的程序计算存储在int类型数组中的值的总和和平均值。

class SumAverage {
    public static void main(String[] args) {

        int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12};
        int sum = 0;
        Double average;
     
        //用于每个循环访问元素
        for (int number: numbers) {
            sum += number;
        }
     
        int arrayLength = numbers.length;

        //将sum和数组长度改为double,因为平均值average是double
        average =  ((double)sum / (double)arrayLength);

        System.out.println("Sum = " + sum);
        System.out.println("Average = " + average);
    }
}

输出

Sum = 36
Average = 3.6

在上面的示例中,我们创建了一个命名数字数组。我们使用for…each循环访问数组的每个元素。要了解for…each循环的更多信息,请访问Java for ... each循环

在循环中,我们计算每个元素的和。注意这一行,

int arrayLength = number.length;

在这里,我们使用数组的length属性来计算数组的大小。然后,我们使用以下公式计算平均值:

average = ((double)sum / (double)arrayLength);

正如您看到的,我们正在将int值转换为double。在Java中,这称为类型转换。要了解有关类型转换的更多信息,请访问Java 类型转换

多维数组

 我们现在提到的数组称为一维数组。但是,我们可以在Java中声明多维数组。
多维数组是数组的数组。也就是说,多维数组的每个元素都是数组本身。例如,

double[][] matrix = {{1.2, 4.3, 4.0}, 
      {4.1, -1.1}
};

这里,我们创建了一个多维数组matrix。它是一个二维数组。要了解更多信息,请访问Java多维数组