上一篇介绍完一维数组后,我们来看二维数组
1.二维数组的存储
在C语言中我们说过:二维数组可以看成是特殊的一位数组,比如int arr[2][3],arr可以看成由两个元素组成,即arr[0]和arr[1],arr[0]和arr[1]各自又有三个元素,这句话在Java中同样适用,一维数组中arr存储的是一个地址,二维数组中则是多个地址,以上面的arr数组为例,其在JVM中的存储如下:
2.二维数组的定义和初始化
和一维数组类似,二维数组的定义和初始化同样有三种:
int[][] arr1={{1,2,3},{4,5,6}};
int[][] arr2=new int[][] {{1,2,3},{4,5,6}};
int[][] arr3=new int[2][3]; //同样数组元素的值为0
3.打印二维数组
使用的依旧是在一维数组中使用的方法
- 嵌套for循环
需要注意的是,此时arr.length的值表示的是行数,arr[i].length的值是第i行的数组有多少个元素,即列数
- foreach
foreach语句依旧可以使用,同样是嵌套的foreach,使用方法如下图:
- Arrays.deepToString()
Arrays.toString()只能作用于一维数组,二维数组打印出来的是处理后的地址
所以使用 Arrays.deepToString()将二维数组转换为字符串
4.不规则二维数组
Java中的二维数组每一行都可以单独指定列数,具体操作如下:
5.Arrays中常用的方法
- Arrays包中有很多操作数组的方法,在这对其常用的一些方法进行总结
- Arrays.toString():将一维数组内容转换成字符串
- Arrays.deepToString():将二维数组内容转换成字符串
- Arrays.copyOf():拷贝数组,有两个参数,分别是要拷贝的数组的名称和拷贝的长度,返回值是数组
- Arrays.copyOfRange():拷贝数组,可设定起始和结束位置,两端取值是左闭右开
- Arrays.binarySearch():数组中二分查找搜索指定值,找到返回值的下标,没有则返回负数
- Arrays.fill():填充数组内容,可以选择局部填充或全部填充Arrays.sort():对数组进行排序,排序方式是升序
数组内容就到此结束,完