1、二维数组的相关介绍
- Java中操作多位数组的语法与一维数组类似。在实际应用中,三维以上的数组很少使用,主要使用二维数组。
- 二维数组是一个元素为一维数组的一维数组。
- 从语法上Java支持多维数组,但从内存分配原理的角度看,Java中只有一维数组,没有多维数组。或者说,从表面上是多维数组,实质上都是一维数组。
- 定义二维数组的语法格式如下:
数据类型[][] 数组名;
或者:
数据类型 数组名[][];
需要注意的是数据类型为数组元素的类型。
“[][]”用于表明定义了一个二维数组,通过多个下标进行数据访问。
“数组名[下标]”表示二维数组里的一个元素,这个元素还是一个一维数组。
“数组名[下标][下标]”表示二维数组里的一个元素(一维数组)里的一个元素。
如下代码:
//数据类型[][] 数组名
int[][] nums1;
//数据类型 数组名[][]
int nums2[][];
2、二维数组的使用
(1)初始化二维数组
二维数组初始化的语法格式如下:
数据类型[][] 数组名 = new 数据类型[][]{ {元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
或者:
数据类型[][] 数组名 = { {元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
二维数组的初始化代码如下所示:
//数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
int[][] nums1=new int[][]{{1,2,3},{1,2,3},{1,2,3}};
//数据类型[][] 数组名 ={{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
int[][] nums2={{1,2,3},{1,2,3},{1,2,3}};
(2)二维数组的遍历
因为二维数组是由两个两个一维数组组成的,因此要对其进行遍历就要用到双重for循环,具体的遍历语法格式如下:
for(int i = 0;i<数组名.length;i++){
for(int j = 0;j<数组名[i].length;j++){
System.out.println(数组名[i][j]);
}
}
遍历的具体实现代码如下:
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println(nums[i][j]);
}
}
3、二维数组的实例应用
定义一个4行4列的二维数组, 逐个从键盘输入值,然后将第1行和第4行的数据进行交换, 将第2行和第3行的数据进行交换,具体实现代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
// 定义Scanner类
Scanner sc = new Scanner(System.in);
// 定义一个4行4列的二维数组
int[][] nums = new int[4][4];
// 利用双重for循环录入二维数组中的元素
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
System.out.println("请输入第" + (i + 1) + "行第" + (j + 1) + "列的元素:");
nums[i][j] = sc.nextInt();
}
}
// 定义一个新的4行4列的数组并按要求将录入的数组存储在新数组中
int[][] nums1 = new int[4][4];
for (int i = 0; i < nums.length; i++) {
nums1[0][i] = nums[3][i];
nums1[1][i] = nums[2][i];
nums1[2][i] = nums[1][i];
nums1[3][i] = nums[0][i];
}
sc.close();
// 输出录入的二维数组
System.out.println("你输入的数组是:");
for (int n = 0; n <=3; n++) {
System.out.println(Arrays.toString(nums[n]));
}
// 输出改变后的数组
System.out.println("交换后的的数组是:");
for (int m = 0; m <=3; m++) {
System.out.println(Arrays.toString(nums1[m]));
}
}
}
4、数组操作类Arrays类
在上面的二维数组的实例应用中我们用到了Arrays类中的toString方法,因此下面我们来介绍下Java中的数组操作类Arrays类;
(1)JDK中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。
(2)该类提供了一系列方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可,不需要自己编码实现,降低了开发难度。
(3)Arrays类的常用方法介绍
1)equals(array1,array2)方法,比较两个数组是否相等
Arrays类的equals()方法用于比较两个数组是否相等。只有当两个数组长度相等,对
应位置的元素也一一相等时,该方法返回true;否则返回false。
2)sort(array)方法,对数组进行升序排列
Arrays类的sort()方法对数组的元素进行升序排列,即以从小到大的顺序排列。
3)toString(array)方法,将数组转换成字符串
Arrays类中提供了专门输出数组内容的方法——toString()方法。该方法用于将一个数
组转换成一个字符串。它按顺序把多个数组元素连在一起,多个数组元素之间使用英
文逗号和空格隔开。利用这种方法可以很清楚地观察到各个数组元素的值。
4)fill(array,val)方法,将数组中的所有元素赋值为相同的值。
Arrays类的fill(array,val)方法用于把数组array的所有元素都赋值为val。
5)copyOf(array,length)方法,将数组复制成一个长度为设定值的新数组
使用Arrays类的copyOf()方法把数组复制成一个长度为设定值的新数组。
6)binarySearch(array,val)方法,查询元素在数组中的下标
Arrays类的binarySearch()方法用于查询数组元素在数组中的下标。
调用该方法时要求数组中的元素已经按升序排列,这样才能得到正确的结果。
版权声明:本文为博主作者:周青灯原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/qq_44997138/article/details/129388906