Java教程

2021-8-3-二维数组学习笔记

本文主要是介绍2021-8-3-二维数组学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二维数组学习笔记

1.概述

二维数组存是储一维数组的数组

1.1 格式

1.1.1 常用格式

数据类型[ ] [ ] 变量名;

示例:int [ ] [ ] arr;

1.1.2 其他格式

A. 数据类型 变量名[] [] ;

示例:int arr [] [];

B. 数据类型 [] 变量[];

示例:int[] arr[];

2.二维数据的初始化

2.1 动态初始化

2.1.1 格式

数据类型 [] [] 变量名 = new 数据类型[m] [n];

m表示这个二维数组,可以存放多少个一维数组

n表示每一个一维数组可以存放多少个元素

示例:

int[][] arr =new int[2][3];
//该数组有两个一维数组,每一个一维数组可以存储3个s

示例:

package com.huly.twoarray;

public class TDArray {
    public static void main(String[] args) {
        int[][] arr = new int[2][3];
        System.out.println(arr);
        /*
        此处输出结果为:[[I@1b6d3586
        [[指的是此数组为二维数组
        I指的是数据的数据类型
        @是隔断符
        1b6d3586是十六进制内存地址
        */
        System.out.println("-------");
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        //这两句打印的是对应一维数组的地址:[I@4554617c、[I@74a14482
        /*
        system.out.println(arr[2]);//此句不注释掉的话运行到此处时程序停止并报错,但此程序可以被启动
         */
        System.out.println("---------");
        System.out.println(arr[0][1]);
        /*
        想要获取二维数组中的元素需要在在一维数组的后面再加上索引,代表着对应一位数组里第2个元素
        由于数组动态初始化是指定数组长度,所以系统会自动给数组里的元素默认赋值为零,所以此处结果也为零
        */
        arr[0][1] = 1;//此处是给二维数组中的元素赋值
        System.out.println(arr[0][1]);//输出结果为:1

    }

}

2.1.2 注意事项

  • 二维数组中存储的是一维数组,可以先创建好一维数组再放入二维数组中;

  • 二维数组不能存入超过定义长度的数据

  • 创建好的一维数组长度比定义的二维数组长度长,不影响将一维数组放入二维数组中存储,因为一维数组是将地址赋值给了二维数组,本身一维数组已经在内存空间中开辟好了空间,二维数组根据地址值可以直接取出相应数据。

示例:

package com.huly.twoarray;

public class TDArray2 {
    public static void main(String[] args) {
        int arr1[] = {1,2,3};
        int arr2[] = {4,5,6,7};//程序运行时,这俩一维数组先在堆内存中开辟空间存入数据

        int arr3[][] = new int[2][3];//定义二维数组包含两个一维数组,每个一维数组长度是3
        arr3[0] = arr1;//将一维数组arr1的地址赋值给二维数组的第一个一维数组
        arr3[1] = arr2;//将arr2的地址赋值给二维数组arr的第二个一维数组
        System.out.println(arr3[0][1]);
        System.out.println(arr3[1][3]);
        //arr3[1]等效与arr2,后面再带一个[3],即可访问arr2的第四个元素

    }
}

2.2 静态初始化

2.2.1 格式

数据类型 [] [] 变量名 = new 数据类型{{元素1,元素2······},{元素1,元素2······},······};

示例:

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

注意事项:二维数组静态初始化时,可以先将一维数组赋值,然后再将一维数组赋值给二维数组

示例:

int[][] arr1 = {1,2};int[][] arr2 = {3,4};
int arr[][] = {arr1,arr2};

3.数组的使用

3.1 数组遍历

package com.huly.twoarray;

public class TDArray2 {
    public static void main(String[] args) {
        int arr1[] = {1,2,3};
        int arr2[] = {4,5,6,7};

        int arr3[][] = new int[2][3];
        arr3[0] = arr1;
        arr3[1] = arr2;
        System.out.println(arr3[0][1]);
        System.out.println(arr3[1][3]);
        for (int i = 0; i < arr3.length; i++) {
            for (int j = 0; j <arr3[i].length ; j++) {
                System.out.println(arr3[i][j]);
            }

        }

    }
}

3.2 二维数组求和

package com.huly.twoarray;
import java.util.Scanner;
public class sumTDArray {
    public static void main(String[] args) {
        int sum = 0;
        Scanner sc = new Scanner(System.in);
        int[][] arr1 = new int[3][3];
        for (int i = 0; i < arr1.length; i++) {
            for (int i1 = 0; i1 < arr1[i].length; i1++) {
                System.out.println("入第"+(i+1)+"季度第"+(i1+1)+"月营收");
                arr1[i][i1] = sc.nextInt();

            }

        }
        for (int i = 0; i < arr1.length; i++) {
            for (int i1 = 0; i1 < arr1[i].length; i1++) {
                sum+=arr1[i][i1];
                System.out.println(arr1[i][i1]);
            }

        }
        System.out.println(sum);


    }
}
这篇关于2021-8-3-二维数组学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!