二维数组.
二维数组的定义方式:
int[][] array={{1,2},{3,4},{5,6}};
int[][] array1=new int[][]{{1,2},{3,4},{5,6}};
int[][] array2=new int[2][3];//规则的二维数组
int[][] array3=new int[3][];
int[][] array4={{1},{2,3},{4,5}};//不规则的二维数组
初始化不规则数组
int[][] array3=new int[3][];
array3[0]=new int[2];
array3[1]=new int[3];
array3[2]=new int[4];//[[0,0],[0,0,0],[0,0,0,0]]结果
打印二维数组方法:
for (int i = 0; i <3 ; i++) {
for (int j = 0; j <2 ; j++) {
System.out.println(array[i][j]+"");
}
System.out.println();
}
System.out.println(Arrays.deepToString(array));
打印Arrays.deeptoString:(错误打印方法)
int[][] array4={{1},{2,3},{4,5}};
for (int i = 0; i <3 ; i++) {
for (int j = 0; j <2 ; j++) {
System.out.println(array4[i][j]+"");
}
System.out.println();
}
System.out.println(Arrays.deepToString(array4));//会产生数组越界异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
正确打印方法
for (int i = 0; i <array4.length ; i++) {
for (int j = 0; j <array4[i].length ; j++) {
System.out.println(array4[i][j]+"");/array4.length为行的长度 array4[0].length为第0行的列数 array4[1].length为第一行的列数
}
System.out.println();
}
System.out.println(Arrays.deepToString(array4));
Arrays工具类的使用
Arrays.copyOfRange(array,from,to)拷贝数据返回数组
int[] arr = {1, 2, 3, 4, 5};
int[] arr1 = Arrays.copyOfRange(arr, 1, 4);
System.out.println(Arrays.toString(arr1));//[2,3,4]
Arrays.equals判断两个数组是否相同。返回值为boolean类型
int[] arr = {1, 2, 3, 4, 5};
int[] arr1={1,2,3,4,5,6};
System.out.println(Arrays.equals(arr,arr1));//false
Arrays.fill数组填充
int[] array=new int[5];
Arrays.fill(array,9);
System.out.println(Arrays.toString(array));//[9,9,9,9,9]
Arrays.fill(array,2,7,9)从2号下标到7号下标填充为9(不包含7号下标.左闭右开)
int[] array=new int[10];
Arrays.fill(array,2,7,9);
System.out.println(Arrays.toString(array));//[0,0,9,9,9,9,9,0,0,0,0]
Arrays.sort对数组进行排序(使用的是快速排序算法,升序)
int[] arr2={1,9,32,4,55,17,29};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));//[1,4,9,17,29,32,55]
可变参数编程
public static int sum(int... a){
int ret=0;
for(int x:a){
ret+=x;
}
return ret;
}//在调用函数时,可任意累加参数 ...语法代表参数可变
public static void main(String[] args) {
System.out.println(sum(10,20,30,40,50));//150
int[] arr={1,2,3,4,5,6,7,8,9,10};
System.out.println(sum(arr));//55
System.out.println(