当前位置:
首页
文章
后端
详情

Java基础知识数组之二维数组知识归纳

为了更方便地组织数据信息,通常会采用表的形式来进行存储,二维数组的结构可以很好地表示计算机中的表。下面我将通过Java来展示二维数组的创建,初始化以及具体是怎么获取数组内的元素。

一、二维数组的创建

其实在Java中并不支持二维数组,但是数组声明的一个特点就是,可以是任何数据声明数组内元素的类型。所以二维数组可以看做是一维数组的一维数组,具体声明格式如下:

type[][] arr; // 数据类型[][] 数组名;

如果把二维数组看做是一个表,那么第一个中括号代表的就是表的行,第二个中括号代表的是表的列。

int[][] arr1;
char[][] arr2;

二、二维数组的初始化

二维数组的初始化和一维数组的初始化非常之相似,一样是三种方法,具体如下:

(1)给定数值空间,再进行赋值。

int[][] num=new int[2][2];
int[0][0] = 1;
int[0][1] = 2;
int[1][0] = 3;
int[1][1] = 4;

(2)通过 new 给数组赋值。

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

(3)直接给数组进行赋值。

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

上述三种初始化方式的结果都是一样的,而数组执行后的内存结构如下:

二维数组的内存结构

三、二维数组内元素的获取

(1)获取单个元素

如果二维数组创建的是 m 行 n 列,那么可取到的下标和一维数组一样,都是从0开始,到 m-1 或者 n-1 位。也就是说 arr[0][0] 表示的是第一行第一列的元素,arr[2][3] 表示第三行第四列的元素。通过这样的规定,我们很容易就可以获取数组内的单个元素了。

public static void main(String[] args) {
    double[][] class_score = {{10.0,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
    System.out.println("第二行第二列元素的值:"+class_score[1][1]);
    System.out.println("第四行第一列元素的值:"+class_score[3][0]);
}

执行后,输出结果:

第二行第二列元素的值:98.0 

第四行第一列元素的值:99.5

(2)获取全部元素

获取一维数组的长度,通常使用 arr.length 来表示数组的长度。在二维数组中,arr.length 仅表示数组行的长度,arr[0].length 则是用来表示数组列的长度。

获取数组中全部元素,最简单的方法就是通过 for 循环来获取数组中的每一个元素。一维数组用一个 for 循环即可完成获取全部元素,二维数组则需要用嵌套 for 循环。

public static void main(String[] args) {
    double[][] class_score = { { 100, 99, 99 }, { 100, 98, 97 }, { 100, 100, 99.5 }, { 99.5, 99, 98.5 } };
    for (int i = 0; i < class_score.length; i++) { // 遍历行
        for (int j = 0; j < class_score[i].length; j++) {
            System.out.println("class_score[" + i + "][" + j + "]=" + class_score[i][j]);
        }
    }
}

执行后,运行结果:

class_score[0][0]=100.0
class_score[0][1]=99.0
class_score[0][2]=99.0
class_score[1][0]=100.0
class_score[1][1]=98.0
class_score[1][2]=97.0
class_score[2][0]=100.0
class_score[2][1]=100.0
class_score[2][2]=99.5
class_score[3][0]=99.5
class_score[3][1]=99.0
class_score[3][2]=98.5

到这,已经学会了获取二维数组内的全部元素的获取。那么获取整行或是整列的元素,相信也不在话下了。

四、总结

本篇关于 Java基础知识数组中的二维数组详细内容介绍到到这就结束了,想要了解更多和 Java 数组相关的其他内容,可以搜索W3Cschool里面的相关文章。如果本文对大家的学习有所帮助,还希望大家能够多多关注和支持我们!


免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统