java 二维数组

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 二维数组相关的知识,希望对你有一定的参考价值。

声明和初始化

静态初始化

//        静态初始化:
//        一维数组
        int[] arr1_1 = 1, 2, 4;
        System.out.println(Arrays.toString(arr1_1));
//        二维数组
        int[][] arr1_2 = 1, 2, 4, 5, 9, 10;
        for (int[] i :
                arr1_2) 
            System.out.print(Arrays.toString(i));
        
        System.out.println();

动态初始化

//        动态初始化
//        一维数组
        int[] arr2_1 = new int[3];
        arr2_1[0] = 1;
        arr2_1[1] = 2;
        arr2_1[2] = 4;
        System.out.println(Arrays.toString(arr2_1));
//        二维数组1
        int[][] arr2_2 = new int[3][2];
        arr2_2[0][0] = 1;
        arr2_2[0][1] = 2;
        arr2_2[1][0] = 4;
        arr2_2[1][1] = 5;
        arr2_2[2][0] = 9;
        arr2_2[2][1] = 10;
        for (int[] i :
                arr2_2) 
            System.out.print(Arrays.toString(i));
        
        System.out.println();
//        二维数组2
        int[][] arr2_3 = new int[3][];
        arr2_3[0] = new int[]1, 2;
        arr2_3[1] = new int[]4, 5;
        arr2_3[2] = new int[]9, 10;
        for (int[] i :
                arr2_3) 
            System.out.print(Arrays.toString(i));
        

写法

一维数组

//        写法:
//        一维数组1
        int[] arr3_1 = new int[9];
//        一维数组2
        int arr3_2[] = new int[9];
//        一维数组3
        int arr3_3[] = new int[]8, 3, 4;
//        一维数组4-类型推断
        int arr3_4[] = 8, 3, 4;

二维数组

//        二维数组1
        int[][] arr4_1 = new int[3][2];
//        二维数组2
        int arr4_2[][] = new int[3][2];
//        二维数组3
        int[] arr4_3[] = new int[3][2];
//        二维数组4
        int[][] arr4_4 = new int[][]1, 2, 4, 5, 9, 10;
//        二维数组5-类型推断
        int[][] arr4_5 = 1, 2, 4, 5, 9, 10;

声明和初始化总代码

package lesson.l7_array;

import java.util.Arrays;

/**
 * Illustration
 *
 * @author DengQing
 * @version 1.0
 * @datetime 2022/5/7 18:17
 * @function 二维数组
 */
public class TwoDimensionalArray 
    public static void main(String[] args) 
//        静态初始化:
//        一维数组
        int[] arr1_1 = 1, 2, 4;
        System.out.println(Arrays.toString(arr1_1));
//        二维数组
        int[][] arr1_2 = 1, 2, 4, 5, 9, 10;
        for (int[] i :
                arr1_2) 
            System.out.print(Arrays.toString(i));
        
        System.out.println();


//        动态初始化
//        一维数组
        int[] arr2_1 = new int[3];
        arr2_1[0] = 1;
        arr2_1[1] = 2;
        arr2_1[2] = 4;
        System.out.println(Arrays.toString(arr2_1));
//        二维数组1
        int[][] arr2_2 = new int[3][2];
        arr2_2[0][0] = 1;
        arr2_2[0][1] = 2;
        arr2_2[1][0] = 4;
        arr2_2[1][1] = 5;
        arr2_2[2][0] = 9;
        arr2_2[2][1] = 10;
        for (int[] i :
                arr2_2) 
            System.out.print(Arrays.toString(i));
        
        System.out.println();
//        二维数组2
        int[][] arr2_3 = new int[3][];
        arr2_3[0] = new int[]1, 2;
        arr2_3[1] = new int[]4, 5;
        arr2_3[2] = new int[]9, 10;
        for (int[] i :
                arr2_3) 
            System.out.print(Arrays.toString(i));
        

//        写法:
//        一维数组1
        int[] arr3_1 = new int[9];
//        一维数组2
        int arr3_2[] = new int[9];
//        一维数组3
        int arr3_3[] = new int[]8, 3, 4;
//        一维数组4-类型推断
        int arr3_4[] = 8, 3, 4;


//        二维数组1
        int[][] arr4_1 = new int[3][2];
//        二维数组2
        int arr4_2[][] = new int[3][2];
//        二维数组3
        int[] arr4_3[] = new int[3][2];
//        二维数组4
        int[][] arr4_4 = new int[][]1, 2, 4, 5, 9, 10;
//        二维数组5-类型推断
        int[][] arr4_5 = 1, 2, 4, 5, 9, 10;
    



二维数组的长度

        int [][]arr1=new int[][]1,2,8,9,10,-1;
//        二维数组的行-外层的
        System.out.println(arr1.length);//3
//        二维数组的列-内部的
        System.out.println(arr1[0].length);//2
        System.out.println(arr1[1].length);//3
        System.out.println(arr1[2].length);//1

二维数组的遍历

方法1

//        二维数组的遍历
//        方法1:两层for循环
        for (int i = 0; i < arr.length; i++) 
            for (int j = 0; j < arr[i].length; j++) 
                /*1	2	
                8	9	10	
                -1	*/
                System.out.print(arr[i][j]+"\\t");
            
            System.out.println();
        

方法2

//        方法2:foreach+Arrays.toString
        for (int[] a:
             arr) 
//            [1, 2][8, 9, 10][-1]
            System.out.print(Arrays.toString(a));
        

默认初始值

public class TwoDimensionalArray3 
    public static void main(String[] args) 
//        一维数组
        int[]a=new int[2];
        System.out.println(a);//[I@43a25848
        System.out.println(a[0]);//0
        System.out.println(a[1]);//0


//        二维数组1
        int[][]arr=new int[3][4];
        System.out.println(arr);//[[I@3ac3fd8b
//        外层元素
        /*[I@43a25848:
        * [一个代表存的是一维数组
        * I代表是int型
        * 43a25848代表地址*/
        System.out.println(arr[0]);//[I@43a25848
        System.out.println(arr[1]);//[I@3ac3fd8b
//        内层元素
        System.out.println(arr[0][0]);//0
        System.out.println(arr[1][1]);//0



//        二位数组2
        int[][]array=new int[3][];
        System.out.println(array);//[[I@3b6eb2ec
//        外层元素
        /*null:列存的是一维数组,是引用类型,为null*/
        System.out.println(array[0]);//null
        System.out.println(array[1]);//null

    


内存解析

案例1

案例2

案例3

案例4:

练习

以上是关于java 二维数组的主要内容,如果未能解决你的问题,请参考以下文章

java数组(一维数组,二维数组)

Java中数组的使用

使用Java定义数组

为啥二维动态数组有初始值?

java使用foreach语句遍历二维数组如何实现?

java 二维数组行列互换