Java基础07—多维数组(二维数组)

29 篇文章 0 订阅
10 篇文章 0 订阅

Java基础07—多维数组

多维数组

在 Java 中,可以使用多维数组来存储多个数据值,以便更好地组织和访问这些数据。Java 中的多维数组是一种数组的数组,即一个数组的元素也是一个数组。Java 中的多维数组可以包含任意数量的维度。在处理多维数组时,需要注意数组下标的范围,以避免数组越界异常。同时,还可以使用循环嵌套来遍历多维数组中的所有元素。

二维数组

	为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。
定义二维数组

语法规则:

数据类型[ ][ ] 数组名; 
 或者  
数据类型 数组名[ ][ ];

语法解析:

[][] 表示二维数组,前面的[ ]表示第一维,后面的[ ]表示第二维。

[][]放在数组名的前面或后面都是正确的。

分配内存
int[][] arr = new int[3][4]; 
数组元素初始化
// 二维数组初始化
int[][] arr = new int[3][4]; // 动态初始化
arr[0][0] = 1;
int[][] arr1 = new int[][]{ // 静态初始化
	{1, 2, 3},
	{2, 3},
	{3, 4, 5, 4}
};
二维数组的迭代
for (int i = 0; i < arr1.length; i++) {
	System.out.println(arr1[i]);
	for (int i1 = 0; i1 < arr1[i].length; i1++) {
		System.out.println(arr1[i][i1]);
	}
}
for (int[] t : arr1) {
	for (int a : t) {
		System.out.println(a);
	}
}

Arrays

JDK中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。该类提供了一些列方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可,不需要自己编码实现,降低了开发难度。

java.util.Arrays 是一个与数组相关的工具类,里面提供了大量静态方法,用来事项数组常见的操作。

Arrays类的常用方法

方法返回类型说明
equals(array1,array2)boolean比较两个数组是否相等
sort(array)void对数组 array 的元素进行排序
to String(array)String将一个数组 array 转换成一个字符串
fill(array,val)void把数组array的所有素都赋值成val
copy of(array,length)与array 数据类型一致把数组 array 复制成一个长度为 length 的新数组
binarySearch(array,val)int查询元素值 val 在数组 array 中的下标
compare(arrayl,array2)int按字典顺序比较数组,前面的数组大,返回大于0的值,反之返回小于0的值
copyOfRange(arr,start,end)与 array 数据类型一致将指定数组的指定范围复制到新数组中。
fill(arr,start,end, val)void将指定的值分配给指定数组的指定范围的每个元素。
mismatch(arrayl,array2)int查找并返回两个数组之间第一个不匹配的索引,否则如果未找到不匹配,则返回 -1。
mismatch(array1,start1 end1,array2,start2,end2)int查找并返回指定范围内两个数组之间第一个不匹配的相对索引,否则如果未找到不匹配,则返回-1。

Arrays类的应用

比较两个数组是否相等
  • Arrays类的equals()方法用于比较两个数组是否相等。只有当两个数组长度相等,对应位置的元素也一一相等时,该方法返回true,否则返回false。
对数组元素进行升序排序
  • Arrays类的sort()方法对数组的元素进行升序排序。
将数组转换成字符串
  • 将数组所有元素赋值为相同的值
  • Arrays类的fill(array,val)方法用于把数组array的所有元素都赋值为val。
输出数组内容的toString()方法
  • 该方法用于将一个数组转换成一个字符串。它按顺序把多个数组元素连在一起,多个数组元素之间使用英文逗号和空格隔开。利用这种方法可以很清楚地观察到各个数组元素的值。
将数组赋值成一个长度为设定值的新数组
  • Arrays类的copyOf()方法把数组复制成一个长度为设定值的新数组。

  • Arrays类的copyOf(array,length)方法可以进行数组复制,把原数据复制成一个新数组,其中length是新数组的长度。

    如果length小于原数组的长度,则新数组就是原数组的前面length个元素;如果length大于原数组的长度,则新数组前面的元素就是原数组的所有元素,后面的元素是按照数组类型补充的默认值,如整数补充0,浮点数补充0.0等。

  • System.arraycopy() 方法从指定的源数组复制一个数组,从指定位置开始,到目标数组的指定位置。该方法声明如下:

public static void arrcopy(Object src, int srcPos, Object dest, intdestPos, int length)
参数解析:

src:这是源数组。

srcPos:这是源数组中的起始位置。

dest:这是目标数组。

destPos:这是目标数据中的起始位置。

length: 这是要复制的数组元素的数量。

数组组件的子序列从 src 引用的源数组复制到 dest 引用的目标数组。复制的组件数等于 length 参数。

源数组中位置srcPos到srcPos + length - 1的元素被复制到目标数组的destPos 到 destPos + length - 1的位置。

查询元素在数组中的下标

Arrays类的binarySearch(Object[],Object key)方法用于查询数组元素在数组中的下标。调用该方法时要求数组中的元素已经按升序排列。如果key在数组中,则返回搜索值的索引;如果key不在数组中,返回值-1或“-”(插入点)。插入点的值有如下四种情况。

[1] 搜索值是数组元素,从0开始计数,得搜索值的索引值;

[2] 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;

[3] 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);

[4] 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值