-
2021-02-26 08:43:58
二维数组的定义
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
因为数组只能保存一行数据。在生活中,比如坐标等等,我们需要用二维数组来表示。通过行号和列好来定位数据。
定义:类型 数组[][] 类型[][] 数组名
例如:float a[3][4]; //定义a为3行4列的数组
二维数组的声明和初始化
二维数组的声明、初始化和引用与一维数组相似。
当使用new来创建二维数组时,不必指定每一维的大小,但要指定最左边的维的大小。
int[][] array = new int[2][]; // 合法
int a[][] = new int[][4]; //非法
二维数组的初始化有静态初始化和动态初始化。
实际上,在Java中只有一维数组,二维数组本质上也是一维数组,只是数组中的每一个元素都指向了另一个一维数组而已。
二维数组的长度
可用 .length 属性测定二维数组的长度,即元素的个数。
使用 “数组名.length” 的形式测量的是数组的行数,而使用 “数组名[i].length” 的形式测量的是该行的列数。
遍历二维数组
public classDoubleArrary {public voidarray() {int[][] a = {{1,2,3},
{4,5,6,7},
{8,9}};
System.out.println("二维数组行数:" +a.length);
System.out.println("第二行的列数:" + a[1].length);for (int i = 0; i < a.length; i++) {for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+ "\t");
}
System.out.println();
}
}public static voidmain(String[] args) {
DoubleArrary test= newDoubleArrary();
test.array();
}
}
更多相关内容 -
java二维数组遍历的2种代码
2020-08-25 20:38:54主要介绍了java二维数组遍历的2种代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
Java二维数组简单定义与使用方法示例
2020-08-29 04:13:51主要介绍了Java二维数组简单定义与使用方法,结合实例形式简单分析了java二维数组的定义、使用方法及相关注意事项,需要的朋友可以参考下 -
Java二维数组查找功能代码实现
2020-08-19 02:30:12主要介绍了Java二维数组查找功能代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
Java二维数组计算集合总结
2020-08-27 23:13:04本篇文章给大家整理了关于Java二维数组计算集合的内容总结,有需要的读者们可以参考下。 -
java 二维数组 随机生成迷宫
2020-10-20 09:46:26使用二维数组随机生成迷宫,里面总共有三份代码,都是迷宫生成的,相信有一份是适合你的。直接运行main方法就可运行,简单方便。 -
java 二维数组矩阵乘法的实现方法
2020-09-05 13:04:32java 二维数组矩阵乘法的实现方法,需要的朋友可以参考一下 -
Java二维数组实现简单Map
2019-07-31 05:25:27NULL 博文链接:https://liangjian103.iteye.com/blog/1101210 -
Java二维数组实战案例
2020-08-25 16:53:46主要介绍了Java二维数组,结合具体案例形式分析了java二维数组定义、遍历、计算等相关操作技巧,需要的朋友可以参考下 -
java二维数组
2014-05-12 11:10:55这是我个人原创的,根据一些题目自己写的代码,和大家分享一下 -
java实现二维数组转json的方法示例
2020-10-19 03:22:07主要介绍了java实现二维数组转json的方法,涉及java数组遍历及json格式数据构造相关操作技巧,需要的朋友可以参考下 -
Java二维数组
2021-02-14 11:42:42在Java二维数组中,数据存储在行和列中,我们可以使用行索引和列索引(例如Excel File)访问记录。 如果数据是线性的,则可以使用一维数组。但是,要处理多层数据,我们必须使用多维数组。Java中的二维数组是...Java编程语言中的二维数组不过是数组数组。在Java二维数组中,数据存储在行和列中,我们可以使用行索引和列索引(例如Excel File)访问记录。
如果数据是线性的,则可以使用一维数组。但是,要处理多层数据,我们必须使用多维数组。Java中的二维数组是多维数组的最简单形式。
Java中的二维数组声明
以下代码段显示了Java编程语言中的二维数组声明:
Data_Type[][] Array_Name;
- Data_type: 决定要接受的元素类型。例如,如果我们要存储整数值,则数据类型将声明为int。如果我们要存储浮点值,那么数据类型将是浮点的。
- Array_Name: 这是将其赋予此Java二维数组的名称。例如,汽车,学生,年龄,标记,部门,员工等。
同样,可以声明二维数组的剩余类型:
int [][] anIntegerArray; // declaring an two dimensional array of Integers byte[][] anByteArray; // declaring an two dimensional array of Bytes short[][] anShortArray; // declaring an two dimensional array of Shorts long[][] anLongArray; // declaring an two dimensional array of Longs float[][] anFloatArray; // declaring an two dimensional array of Floats double[][] anDoubleArray; // declaring an two dimensional array of Doubles boolean[][] anBooleanArray; // declaring an two dimensional array of Booleans char[][] anCharArray; // declaring an two dimensional array of Chars String[][] anStringArray; // declaring an two dimensional array of Strings
用Java创建二维数组
为了用Java创建二维数组,我们必须使用New运算符,如下所示:
Data_Type[][] Array_Name = new int[Row_Size][Column_Size];
如果我们观察以上二维数组代码片段,
- Row_Size: 数组可以存储的行元素数。例如,Row_Size = 5,则该数组将具有五行。
- Column_Size: 数组可以存储的Column元素数。例如,Column_Size = 6,则该数组将具有6列。
如果您已经用Java初始化了一个二维数组,那么
double [][] anStudentArray; // Declaration of Two dimensional array in java // Crating an Java two dimensional Array anStudentArray = new int[5][3];
例如,
double [][] Employees = new double[5][3];
- 在这里,我们使用double作为数据类型来声明Java中的二维数组。这意味着,上面的数组将仅接受双精度值,并且,如果您尝试添加浮点值,则将引发错误。
- 员工是二维数组的名称
- 数组的行大小为5,这表示Employees数组将仅接受5个double值作为行。
- 如果我们尝试存储5个以上的值,则将引发错误。
- 我们可以存储少于5个示例。例如,如果我们存储2个整数值,则其余2个值将被初始化为默认值(其中0)。
- 数组的列大小为3。这意味着Employees数组将只接受3个整数值作为列。
- 如果我们尝试存储3个以上,则将引发错误。
- 我们可以存储少于3个。例如,如果我们存储1个整数,则其余2个值将被初始化为默认值(哪个为0)。
Java中的二维数组的初始化
我们可以通过多种方式初始化Java二维数组。请参考数组和多维数组中的Java编程。
二维阵列优先方法
在Java中声明和创建二维数组
int[][] Student_Marks = new int[2][3];
更传统地初始化Array元素。
Student_Marks[0][0] = 15; // Initializing Array elements at position [0][0] Student_Marks[1][1] = 45; // Initializing Array elements at position [1][1] Student_Marks[2][1] = 65; // Initializing Array elements at position [2][1]
Java二维数组第二种方法
声明和创建二维数组的第二种方法
int[][] Student_Marks = new int[2][];
在这里,我们没有提到列的大小。但是,Jcompiler足够智能,可以通过检查列内的元素数量来计算大小。
Java二维数组第三种方法
int[][] Employees = { {10, 20, 30}, {15, 25, 35}, {22, 44, 66}, {33, 55, 77} };
在这里,我们没有提到行大小和列大小。但是,编译器足够智能,可以通过检查行和列中的元素数量来计算大小。
第四种方法
以上三种方式在Java中将少量元素存储到二维数组中是很好的,如果我们要存储100行或50列值该怎么办。使用上述任何一种方法添加所有这些方法将是一场噩梦。为了解决这个问题,我们可以在 这里使用 Nested For Loop概念:
int rows, columns; int[][] Employees = new int[100][50]; for (rows = 0; rows < 100 ; rows++) { for (columns = 0; columns < 50; columns++) { Employees[rows][columns] = rows + columns; } }
提示:为了将元素存储在Java二维数组中,我们可以使用For循环,While循环和Do While循环
Java中二维数组的第五种方法
int[][] anIntegerArray = new int[5][3];
anIntegerArray[0][0] = 10;
anIntegerArray[0][1] = 20;
anIntegerArray[0][2] = 30;在这里,我们声明了一个Java二维数组,大小为5行* 3列,但是我们只为一行分配了值。在这种情况下,剩余值分配为默认值(在这种情况下为0)。
访问Java二维数组元素
在Java编程中,我们可以使用索引位置来访问二维数组元素。使用索引,我们可以访问或更改/更改二维数组中存在的每个单独元素。
Java二维数组的索引值从0开始,到n-1结束,其中n是行或列的大小。例如,如果一个int [] [] Array_name = new int [6] [4]将存储6个行元素和4个列元素。
为了访问或修改1个ST值使用ARRAY_NAME [0] [0],以访问或改变2次第3行第三列的值,然后使用ARRAY_NAME [1] [2]和访问的6个行4个列,然后使用ARRAY_NAME [ 5] [3]。让我们看一下二维数组的示例,以更好地理解:
package ArrayDefinitions; public class AccessTwoDimentionalArray { public static void main(String[] args) { int[][] StudentArray = { {12, 22, 33},{45, 65, 95},{442, 444, 446},{785, 786, 787}}; System.out.println("Element at StudentArray[0][0] = " + StudentArray[0][0]); System.out.println("Element at StudentArray[0][1] = " + StudentArray[0][1]); System.out.println("Element at StudentArray[0][2] = " + StudentArray[0][2]); System.out.println("Element at StudentArray[1][0] = " + StudentArray[1][0]); System.out.println("Element at StudentArray[1][1] = " + StudentArray[1][1]); System.out.println("Element at StudentArray[1][2] = " + StudentArray[1][2]); System.out.println("Element at StudentArray[2][0] = " + StudentArray[2][0]); System.out.println("Element at StudentArray[2][1] = " + StudentArray[2][1]); System.out.println("Element at StudentArray[2][2] = " + StudentArray[2][2]); } }
为了处理大量的行和列,我们必须使用 For loop。让我们使用For循环访问上述数组StudentArray [4] [3]。
int rows, columns; for (rows = 0; rows < 4; rows++) { for (columns = 0; columns < 3; columns++) { System.out.format("%d", StudentArray[rows][columns]); } }
Java二维数组示例
在此Java二维数组程序中,我们将声明2个二维数组。
接下来,我们用一些值初始化它们。然后,我们将再声明一个二维数组,以存储这两个数组的和。
// Two Dimensional Array in Java Example package ArrayDefinitions; public class TwoDimentionalArray { public static void main(String[] args) { int[][] a = { {15, 25, 35}, {45, 55, 65} }; int[][] b = {{12, 22, 32}, {55, 25, 85} }; int[][] Sum = new int[2][3]; int rows, columns; for(rows = 0; rows < a.length; rows++) { for(columns = 0; columns < a[0].length; columns++) { Sum[rows][columns] = a[rows][columns] + b[rows][columns]; } } System.out.println("Sum Of those Two Arrays are: "); for(rows = 0; rows < a.length; rows++) { for(columns = 0; columns < a[0].length; columns++) { System.out.format("%d \t", Sum[rows][columns]); } System.out.println(""); } } }
在这个二维数组程序中,首先,我们声明2个大小为[2],[3]的两个二维数组a,b,并使用一些随机值进行初始化。我们还声明了一个空数组size [2],[3]
int[][] a = { {15, 25, 35}, {45, 55, 65} }; int[][] b = {{12, 22, 32}, {55, 25, 85} }; int[][] Sum = new int[2][3];
下面的 For循环 将帮助迭代a和b数组中存在的每个单元格。for循环内的条件(行<a.length)将确保Jcompiler不超过数组行的限制。此外,(行<a [0] .length)将确保编译器不会超出数组列的限制。
提示: a.length用于查找行的长度(第一维),而a [0] .length用于查找行的长度(第二维)。
for(rows = 0; rows < a.length; rows++) { for(columns = 0; columns < a[0].length; columns++) { Sum[rows][columns] = a[rows][columns] + b[rows][columns]; } }
让我们看看Java二维数组程序在迭代方面的执行
行优先迭代
该行的值将为0,并且条件(行<2)为True。因此,它将进入第二循环。
列优先迭代
列的值为0,条件(列<3)为True。因此,它将开始在循环内执行语句,直到条件失败为止。
- Sum [rows] [columns] = a [rows] [columns] + b [rows] [columns];
- 总和[0] [0] = a [0] [0] + b [0] [0];
- 总和[0] [0] = 15 + 12;
- 总和[0] [0] = 27;
列的值增加1
列第二迭代
列的值为1,条件(列<3)为True。由于我们没有退出内部循环(列循环),因此行值仍为0。
- 总和[0] [1] = a [0] [1] + b [0] [1];
- 总和[0] [1] = 25 + 22 = 47;
列的值增加1
列3次迭代
列的值为2,条件(列<3)为True。由于我们没有退出内部循环,因此行值将为0。
- 总和[0] [2] = a [0] [2] + b [0] [2];
- 总和[0] [2] = 35 + 32 = 67;
增量后,列的值将为3,条件(列<3)将失败。因此它将退出循环。
现在,行的值将增加一并开始第二行迭代。
第二行第二迭代
该行的值为1,条件(行<2)为True。因此,它将进入第二循环。
列优先迭代
列的值为0,条件(列<3)为True。因此,它将开始在循环内执行语句,直到条件失败为止。
- Sum [rows] [columns] = a [rows] [columns] + b [rows] [columns];
- 总和[1] [0] = a [1] [0] + b [1] [0];
- 总和[1] [0] = 45 + 55;
- 总和[1] [0] = 100;
列的值增加1
列第二迭代
列的值为1,条件(列<3)为True。由于我们没有退出Columns循环,因此行值将为1
- 和[1] [1] = a [1] [1] + b [1] [1];
- 总和[1] [1] = 55 + 25;
- 总和[1] [1] = 80;
列的值增加1
列3次迭代
列的值为2,条件(列<3)为True。由于我们没有退出内部循环(列循环),因此行值将为1。
- 和[1] [2] = a [1] [2] + b [1] [2] = 65 + 85;
- 总和[1] [2] = 150;
增量后,列的值将为3,条件(列<3)将失败。因此它将退出循环。现在行的值将增加1。这意味着行=2。条件(行<2)将失败。因此,它将退出循环。
如上所述,下一个for循环将遍历。但是,它不是使用求和法,而是使用其中的system.out.format语句以逗号分隔的方式逐一显示值。
for(rows = 0; rows < a.length; rows++) { for(columns = 0; columns < a[0].length; columns++) { System.out.format("%d \t", Sum[rows][columns]); } System.out.println(""); }
Java二维数组(Sum数组)的最终输出是:
Sum [2] [3] = {{27,47,67},{100,80,150}};
-
java 求解二维数组列最小值
2020-08-30 12:37:10主要介绍了java 求解二维数组列最小值的相关资料,需要的朋友可以参考下 -
java 二维数组
2022-04-08 08:59:19//定义二维数组 scores = new int[5][3]//分配内存空间 或者: int [ ][ ] scores = new int[5][3]; 或者直接赋值: int [ ][ ] scores = {{元素,……},{元素,……},{元素,……},{元素,……},{元素,……}}...语法:
数据类型 [ ][ ] 数组名 ;或者 数据类型 数组名[ ][ ]
int [ ] [ ] scores;//定义二维数组
scores = new int[5][3]//分配内存空间
或者:
int [ ][ ] scores = new int[5][3];
或者直接赋值:
int [ ][ ] scores = {{元素,……},{元素,……},{元素,……},{元素,……},{元素,……}}
说明:
二维数组实际是以一维数组为元素的一维数组。
import java.util.Arrays; import java.util.Scanner; public class task_28 { public static void main(String[] args) { //创建定义二维数组 int[][] scores = new int[3][4]; //创建Scanner Scanner input = new Scanner(System.in); //给每个二维数组中的一维数组赋值 for(int i = 0; i < scores.length; i++){ for(int j = 0; j < scores[i].length; j++){ System.out.println("输入整数"); scores[i][j] = input.nextInt(); } } //查看二维数组中的一维元素 for (int i = 0; i < scores.length; i++) { System.out.println(Arrays.toString(scores[i])); } } }
结果:
Arrays类
方法:
Arrays.equals:查看两个数组中的值是非相等;
Arrays.toString:配合打印直接打印出数组内容;
Arrays.sort:数组元素进行升序排列;
-
Java不指定长度的二维数组实例
2020-08-27 04:29:56今天小编就为大家分享一篇Java不指定长度的二维数组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Java编程一维数组转换成二维数组实例代码
2020-08-28 04:44:13主要介绍了Java编程一维数组转换成二维数组,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下 -
java String 转成Double二维数组的方法
2020-09-01 10:59:37下面小编就为大家带来一篇java String 转成Double二维数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
java代码-日常练习21,二维数组及二维数组的遍历
2021-07-15 04:37:43java代码-日常练习21,二维数组及二维数组的遍历 -
超详细 java二维数组解析
2022-04-26 10:34:54咳咳,有小伙伴公众号私信说需要出一期二维数组 的知识点,我翻了翻公众号的历史文章,果然没有,这边自罚一杯 1. 二维数组基本概念 之前我们已经知道什么是 数组(一维数组)javaj基础—数组,数组的存取 这里...咳咳,有小伙伴公众号私信说需要出一期二维数组 的知识点,我翻了翻公众号的历史文章,果然没有,这边自罚一杯
1. 二维数组基本概念
之前我们已经知道什么是 数组(一维数组)javaj基础—数组,数组的存取
这里补充一点: 数组本身是引用数据类型 ,数组的元素 可以是 基本数据类型 跟 引用数据类型
那么?什么是二维数组 ?
官方定义:以一维数组作为一维数组元素的数组
要是有点绕,不好理解,没关系,简单来说,就是一维数组里面存一维数组 ,这就是二维数组
到这,是不是已经基本明白了二维数组的概念了
现在我们直接来看语法:
2. 二维数组语法格式
数据类型 [][] 标识符(自己取的名字) = { {},{},{} … }
回顾一下一维数组 这种创建方式:
从外表来看二维数组就比一位数组 多 加了个 [ ], 数组内的元素也不是 个数了,而是 { } ,这个代表的是一个一维数组,里面内容一样是元素
// 这是一维数组 int[] arr1 = {1,2,3}; // 这是一个二维数组 int[][] arr2 = {{1,2,3},{2,3},{6,3,9}};
数据类型 [][] 标识符(自己取的名字)= new 数据类型[数组里元素个数][每个元素里面一维数组长度]
数组里元素个数 = 二维数组长度
int[][] array1 = new int[3][2];
来看个图解
声明一个二维数组array1,里面有三个元素,每个元素里面有两个元素的数组3. 二维数组的取值
单个取值
二维数组的取值呢,跟一维数组还是有差别的
比如下面这个例子,我们要获取这个二维数组中的 6
int[][] arr2 = {{1,2,3},{2,3},{6,3,9}};
这边我们可以理解成一个平面坐标系,坐标系我们都知道,(x,y)我们可以确定一个平面点的位置,这边也一样
首先可以看出这个二维数组里面有三个元素:
元素1: 下标 0 (数组的角标从0 开始),{1,2,3}
元素2: 下标 1,{2,3}
元素3: 下标 2,{6,3,9}
每个元素又是一个数组,下标还是从0 开始
所以 我们获取 6 这个元素 arr2[2][0], 意味着 6 在这个 二维数组中 元素3 (下标2) 里面 的 数组 的 第1个(下标0) 元素
int[][] arr2 = {{1,2,3},{2,3},{6,3,9}}; System.out.println(arr2[2][0]);
这种方式的也一样:int[][] array1 = new int[3][2];可以理解成 3 行 2 列
遍历取值
我们来看看二维数组是怎么遍历的,这边我们就需要两层 for循环了
比如:
遍历 int[][] arr2 = {{1,2,3},{6,3,9,10}};
int[][] arr2 = {{1,2,3},{6,3,9,10}}; System.out.println("----------基本循环----------"); for (int i = 0; i < arr2.length; i++) { for (int j = 0;j < arr2[i].length;j++) { System.out.print(arr2[i][j]+" "); } } System.out.println(); System.out.println("----------增强for循环----------"); for (int[] ints : arr2) { for (int anInt : ints) { System.out.print(anInt+" "); } }
输出结果:
4. 存值
二维数组的 存值 你可以 一个一个来, arr[0][0] 。。。。int[][] arr = new int[3][2]; arr[0][0] = 1; arr[0][1] = 3; arr[1][0] = 5; arr[1][1] = 7; arr[2][0] = 9; arr[2][1] =11; for (int[] ints : arr) { for (int anInt : ints) { System.out.println(anInt); } }
当然里面是存的一维数组,你也可以这样 ,比如有两个一维数组 ,一维数组的值怎么来,就不用多说了,除了常规添加外,java 基础——数组 可以看看逗号隔开字符串转数组方法 (开发中数组转字符串,转list集合用的很多)
比如 现在有两个字符串,要存储到二维数组中
//定义一个二维数组 String [][] arr = new String[3][2]; String str1 = "2,3,6,9"; String str2 = "11,13"; //字符串转数组 String[] split = str1.split(","); String[] split1 = str2.split(","); //将二维数组第一个元素的值设置为 一维数组 split arr[0] = split; //将二维数组第二个元素的值设置为 一维数组 split1 arr[1] = split1; //输出看看 for (String[] strings : arr) { for (String string : strings) { System.out.println(string); } }
这里也可以看到二维数组中 一维数组的长度可以不一样 ,第三个没有元素,就是我们定义的默认一维数组长度 2 了,为null
扩展 :二维数组的初始化内存解析 (有的面试会问,有个印象)现在我们知道了二维数组 获取单个 元素,以及 遍历 , 下面我们来加深下对二维数组的理解
一般我们声明二维数组的初始化 ,
int[][] arr = new int [3][2];
它的外层元素:arr[0] arr[1] arr[2] …
它的内层元素:arr[0][0] arr[1][2] …
内层元素我们都知道,是获取一个具体的值
那么?外层是什么东西呢?我们来打印一下
int[][] arr = new int [3][2]; System.out.println(arr[0]);
可以看出它是一个地址值,这是二维 元素 指向 一位数组的地址值
arr 才是栈 指向 二维数组的地址值int[][] arr = new int [3][2]; System.out.println(arr);
看出区别了没,一维数组一个[ 二维数组 两个[
到这,欢迎关注公众号~ ,打开微信扫一扫 -
java代码-使用java解决从字符串中解析二维数组的源代码
2022-04-04 18:32:35java代码-使用java解决从字符串中解析二维数组的源代码 ——学习参考资料:仅用于个人学习使用! -
【二维数组】java二维数组简易五子棋
2022-04-29 20:57:36需求 编写一个简易五子棋游戏,棋盘在控制台上绘制,棋盘每一个点都有对应的坐标,下棋者输入两位数字表示落棋子的坐标 实现 public class Gobang { public static void main(String[] args) { ... -
Java数组的定义、初始化、及二维数组用法分析
2020-08-26 10:52:22主要介绍了Java数组的定义、初始化、及二维数组用法,结合具体实例形式分析了java数组概念、功能、数组定义、静态数组、动态数组、二维数组等相关使用技巧,需要的朋友可以参考下 -
java实现二维数组转置的方法示例
2020-08-29 04:17:47主要介绍了java实现二维数组转置的方法,结合实例形式详细分析了java二维数组转置的原理、实现步骤与相关操作技巧,需要的朋友可以参考下 -
java二维数组创建方法
2021-04-23 13:39:01java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法二维数组的定义 type arrayName[ ][ ]; type [ ][ ]arrayName Java 二维数组的声明、初始化和引用... -
java二维数组字符数组_Java中的二维数组
2020-07-20 00:54:52java二维数组字符数组Today we will look into Two-dimensional array in java. An array is like a container that can hold a certain number of values. 今天,我们将研究Java中的二维数组。 数组就像可以容纳... -
java二维数组删除特定行代码
2014-01-16 20:16:43可以删除data矩阵中末尾数据个数《=1的行