31.二维数组
31.1 创建二维数组的两种方式
-
静态创建
//静态创建 //int [][] arr = { {1,2,3},{4,5,6}}; int [][] arr = new int[][]{ {1,2,3},{4,5,6}};
-
动态创建
//动态创建 int [][] arr2 = new int[3][2]; int [][] arr3 = new int[3][]; arr3[0] = new int[3]; arr3[0][0] = 7; arr3[0][1] = 8; arr3[0][2] = 9; arr3[1] = new int[]{5,4,3}; arr3[2] = new int[]{6,7,8};
31.2 注意
对于二维数组array[x] [y]来说,array[x] 代表二维数组中某一个一维数组的地址
数组地址 - -> 记录首地址 ( 数组内存是一段连续的空间 )
32.Arrays工具类
常用方法
有些方法存在重载,需要多个参数,大多数指定范围的都是左闭右开!
方法名 | 作用 | 注意 |
---|---|---|
toString( ) | 遍历数组内的值,如果遍历的是二维数组,那么结果就是二维数组中的每个一维数组的地址 | |
deepToString( ) | 遍历多维数组 | |
equals( ) | 比较数组中的具体值(可指定范围),如果是比较二维数组,那么直接比较的是二维数组中的每个一维数组的地址 | |
deepEquals( ) | 比较多维数组中的具体值 | |
fill( ) | 填充 | |
sort( ) | 升序排列数组(可指定范围) | |
binarySearch( ) | 二分查找 | |
CopyOf( ) | 数组内容复制(创建新数组的任务交给方法) | |
CopyOfRange( ) | 数组内容复制,截取 |
注意区分System类提供的arrayCopy( )
与Arrays类中的复制功能不同的是,前者是由方法创建新数组并返回,而 System类下的arrayCopy( )方法是由用户将原数组和存储数据的新数组当做参数传递进去
System.arrayCopy( src , srcPos , dest , destPos , length )
原数组 起始索引 终止索引 目标数组起始索引 copy个数