数组的定义

数组可以看成是相同元素类型的一个集合,在内存是一段连续的空间


数组是引用类型,数组的引用变量(数组名)存储在栈上,而数组对象(包含其所有元素)作为一个整体存储在堆上

要想理解这个知识⬆️,先得理解下栈和堆的定义~⬇️

对于上述概念,图片如下⬇️


一维数组的创建与初始化

数组的创建

T[] 数组名 = new T[N];
//T是数组中存放元素的类型
//T[] 表示数组的类型
//N 表示数组的长度
        int[] arr1 = new int[10];
        //创建了大小为10的整形数组
        double[] arr2 = new double[10];
        //创建了大小为10的double类型数组
        long[] arr3 = new long[10];

数组的初始化

数组的初始化分为动态初始化静态初始化

动态初始化

在初始化的时候,直接指定数组的元素个数

int[] arr = new int[10];

静态初始化

在初始化的时候,不指定数组的元素个数

//     静态初始化
        int[] arr = {1,2,3,4,5,6};
//     也可以这样写
        int[] arr4= new int[]{1,2,3,4};

如果数组没有被初始化,则会有默认值

        int[] arr1 = new int[10];
        double[] arr2 = new double[10];
        String[] arr3 = new String[10];

        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
        System.out.println(Arrays.toString(arr3));

执行结果


具体是下列表格

数组的遍历

第一种方式

        int[] arr = {1,2,3,4,5,6};

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();

第二种方式

        int[] arr = {1,2,3,4,5,6};
        
        for(int x : arr){
            System.out.print(x+" ");
            System.out.println();
        }

数值中的相关的操作

Arrays.toString()

这个是用来打印数组的

        int[] arr = {1,2,3,4,5,6};
        
        Arrays.toString(arr);

输出结果

如果直接打印数组名会出现什么样的结果

为什么呢?⬇️

因为数组名是引用类型,数组名是以地址的形式存储在栈上。⬆️


Arrays.fill()

这个是用来填充数组的⬆️

        int[] arr1 = new int[10];
        Arrays.fill(arr1,6);
        System.out.println(Arrays.toString(arr1));

输出结果

Arrays.sort()

        int[] array = {6,2,3,9,5,4};
//      默认是升序
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));

Arrays.copyof()

        int[] array = {6,2,3,9,5,4};
        int[] newArray = Arrays.copyOf(array, array.length);
        System.out.println(Arrays.toString(newArray));

实参的要求⬇️

运行结果

Arrays.copyofRange()

        int[] array = {6,2,3,9,5,4};
        int[] newArray = Arrays.copyOfRange(array, 0, 3);
        System.out.println(Arrays.toString(newArray));

执行结果以及解释⬇️


二维数组的创建与初始化

数组的创建

        int[][] array = new int[3][3];
        double[][] array1 = new double[3][3];

数组的初始化

//      动态初始化
        double[][] array1 = new double[3][3];
//      静态初始化
        int[][] array2 = {{1,2,3},{1,4,5}};

二维数组的遍历

        int[][] array2 = {{1,2,3},{1,4,5,6},{6,2}};


        for (int i = 0; i <array2.length ; i++) {
            for (int j = 0; j < array2[i].length; j++) {
                System.out.print(array2[i][j]+" ");
            }
            System.out.println();
        }

运行结果

解释


更多推荐