美文网首页Java我爱编程
Java中多维数组和内存的理解

Java中多维数组和内存的理解

作者: 疯帮主 | 来源:发表于2018-05-28 11:25 被阅读0次

二维数组

源码

class DoubleArray{
    public static void main(String[] args){
        //定义一个二维数组
        int[][] da;
        //动态初始化, 必须指定第一维长度
        da = new int[4][];

        //遍历da
        for( int[] a: da){
            System.out.println(a);
        }
        System.out.println("---------------------------");

        //给[2]指定引用
        da[2] = new int[4];
        //赋值
        da[2][2] = 7;

        //给[3]指定引用
        da[3] = new int[2];
        da[3][1] = 4;

        //遍历da
        for( int[] a: da){
            System.out.println(a);
        }
        System.out.println("---------------------------");

        //遍历da[2]
        for( int a: da[2]){
            System.out.println(a);
        }
        System.out.println("---------------------------");

        //遍历da[3]
        for( int a: da[3]){
            System.out.println(a);
        }
    }
}

输出

H:\Code\Java\learn\array>java DoubleArray
null
null
null
null
---------------------------
null
null
[I@15db9742
[I@6d06d69c
---------------------------
0
0
7
0
---------------------------
0
4

1. 定义并初始化

数组类型是引用类型,第一维是引用类型,默认是null

image.png

2. 给da[2]初始化,并赋值

image.png

3. 给da[3]初始化,并赋值

image.png

4.同时初始化两个二维

int[][] a = new int[3][4];
image.png

多维数组

String类型二维数组

String[][] ss = new String[][]{new String[3], new String[]{"Hello"}};

第一维有两个引用
第二维第一个3个String变量,实际也是引用,第二个1个String
最后的变量必须是String,因为是String类型数组


image.png

int类型的三维数组

源码
        int[][][] iii = new int[][][]{new int[][]{new int[]{3,4,5}, new int[]{7,8}}, new int[3][4]};

        System.out.println("iii: ");
        for(int[][] ii: iii)
            System.out.println(ii);
        System.out.println("------------------------");

        System.out.println("iii[0]: ");
        for(int[] ii: iii[0])
            System.out.println(ii);
        System.out.println("------------------------");
        
        System.out.println("iii[1]: ");
        for(int[] ii: iii[1])
            System.out.println(ii);
        System.out.println("------------------------");

        System.out.println("iii[0][0]: ");
        for(int i: iii[0][0])
            System.out.println(i);
        System.out.println("------------------------");

        System.out.println("iii[0][1]: ");
        for(int i: iii[0][1])
            System.out.println(i);
        System.out.println("------------------------");

        System.out.println("iii[1][0]: ");
        for(int ii: iii[1][0])
            System.out.println(ii);
        System.out.println("------------------------");

        System.out.println("iii[1][1]: ");
        for(int ii: iii[1][1])
            System.out.println(ii);
        System.out.println("------------------------");

        System.out.println("iii[1][2]: ");
        for(int ii: iii[1][2])
            System.out.println(ii);
        System.out.println("------------------------");
输出
H:\Code\Java\learn\array>java MoreArray
iii:
[[I@15db9742
[[I@6d06d69c
------------------------
iii[0]:
[I@7852e922
[I@4e25154f
------------------------
iii[1]:
[I@70dea4e
[I@5c647e05
[I@33909752
------------------------
iii[0][0]:
3
4
5
------------------------
iii[0][1]:
7
8
------------------------
iii[1][0]:
0
0
0
0
------------------------
iii[1][1]:
0
0
0
0
------------------------
iii[1][2]:
0
0
0
0
------------------------
image.png

这只是笔者的理解,有不足的请指出
二维不能扩充至三维,至少这里int类型不可以,因为指定了是int类型
二维可以参差不齐,但数据类型最终得一至

相关文章

  • Java中多维数组和内存的理解

    二维数组 源码 输出 1. 定义并初始化 数组类型是引用类型,第一维是引用类型,默认是null 2. 给da[2]...

  • Java中数组和内存理解

    1. 定义数组 int[] arr;在栈内存中申请内存 2. 默认初始化 arr = new int[5];在堆内...

  • Java多维数组的用法!

    除了一维数组和二维数组外,Java中还支持更多维的数组,如三维数组、四维数组和五维数组等,它们都属于多维数组。 经...

  • C#——数组

    关于数组,在C#中我们可以创建一维数组,多维数组以及交错数组。一维数组和多维数组都好理解,交错数组是个什么鬼?其实...

  • Java中数组引用和内存理解

    源码 输出 1.定义多维Person对象 开始只是在栈内存中申请了内存,定义了引用变量 2.动态初始化studne...

  • 数组内存分配图解

    Java中的内存分配图: 数组的内存图解---- 一个数组 数组的内存图解 ----- 2个数组 数组内存...

  • 数组内存分配图解

    Java中的内存分配图: 数组的内存图解---- 一个数组 数组的内存图解 ----- 2个数组 数组内存图解 -...

  • Scala菜鸟的进阶之路之数组相关操作四

    多维数组 和Java一样,多维数组是通过数组的数组来实现的。举例来说,Double的二维数组类型为Array[A...

  • 数组内存分配图解

    Java中的内存分配图: 数组的内存图解---- 一个数组 数组内存图解 ---- 3个数组/*定义第一个数组,定...

  • Android 数据结构

    数组: Java 语言中提供的数组是用来存储固定大小的同类型元素。 多维数组: 多维数组可以看成是数组的数组,比如...

网友评论

    本文标题:Java中多维数组和内存的理解

    本文链接:https://www.haomeiwen.com/subject/zppwjftx.html