Bootstrap

Java:数组

一、概念

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的多个同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,…,number99。

本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。


二、声明数组

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

2.1 格式

dataType[] arrayRefVar;   // 首选的方法
 
或
 
dataType arrayRefVar[];  // 效果相同,但不是首选方法

注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

2.2 实例

int[] myList;         // 首选的方法int myList[];         //  效果相同,但不是首选方法

三、初始化数组

Java语言使用new关键字来初始化数组,数组有两种初始化方式,一种是静态初始化,一种是动态初始化

3.1 格式

// 动态初始化,数组初始值是创建数组用的数据类型的默认值
dataType[] arrayRefVar = new dataType[arraySize];

// 静态初始化,由我们为每一个数组元素设置初始值
dataType[] arrayRefVar = new int[]{value0, value1, ..., valuek}; // 完整格式
dataType[] arrayRefVar = {value0, value1, ..., valuek}; // 简写

上面的语法语句做了两件事:

一、使用 dataType[arraySize] 创建了一个数组。
二、把新创建的数组的地址值赋值给了变量 arrayRefVar。

3.2 实例

public class Main {
    public static void main(String[] args) {
        // 1、初始化整数数组,长度为5
        int[] arr = new int[5];
        // 2、给数组赋值
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        arr[3] = 4;
        arr[4] = 5;
        // 3、定义一个临时变量,求数组的和
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        // 4、打印结果
        System.out.println("sum:" + sum);
    }
}

运行结果:

sum:15

四、处理数组

数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用for循环或者增强for循环。

4.1 for循环

使用for循环来访问数组元素,需要通过下标来访问,适合一些复杂的操作,如:交换元素,判断大小值...

public class Main {
    public static void main(String[] args) {
        // 1、初始化数组
        int[] arr = new int[]{1, 2, 3};

        // 2、打印数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

4.2 增强for循环

JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者 增强for 循环,它能在不使用下标的情况下遍历数组

public class Main {
    public static void main(String[] args) {
        // 1、初始化数组
        int[] arr = new int[]{1, 2, 3};

        // 2、打印数组
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

五、多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组

5.1 格式

// 动态初始化,数组初始值是创建数组用的数据类型的默认值
dataType[][] arrayRefVar = new dataType[arraySize][arraySize];

// 静态初始化,由我们为每一个数组元素设置初始值
dataType[] arrayRefVar = new int[][]{{value0, value1, ..., valuek},{value0, value1, ..., valuek}}; // 完整格式
dataType[] arrayRefVar = {{value0, value1, ..., valuek},{value0, value1, ..., valuek}}; // 简写

5.2 实例

看到这可能会有点懵,建议将这段代码复制下来自己运行,步步分解代码,如果有问题的同学,可以在评论区中留言

public class Main {
    public static void main(String[] args) {
        // 动态初始化
//        int[][] arr = new int[3][3];
        // 初始化二维数组
        int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        // 打印二维数组的元素
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
        }
    }
}

;