前言:你好未来的自己!你好陌生人!简单的自我总结.没有什么营养.泄泄狂神
请区别方法的重写.重载是指同名方法不同的传参.与返回值无关.
重写是重写对应的方法.方法生明必须一致,包括修饰符返回值方法名,参数
这个用的比较少.方法传递参数的最后一个参数不能确定其数量就可以使用可变参数
例如:
public static void main(String[] args) {
test1(1,77,44,22);//77,44,22代表c
}
private static void test1(int a,int... c) { //这个c本质是一个数组
}
注意的是,只能有一个可变参数,且只能是最后一个参数
自己调用自己.
必须设置递归出口,不然就是死循环
把上一次调用自己的值作为参数再计算,就可以使用递归.完全可以被迭代替代
数组一旦开辟空间,定义好了长度就不能再改变.有序可以通过下标(索引)找到对应的值
//一维数组:
int[] arr = new [10]; int[] arr = {xx,xx}
//二维数组:
int[][] arr = new [10][10] ;
反转数组
创建一个新的数组,同等长度
原数组1赋值给新数组的末尾.循环返回新数组完成反转
稀疏数组
稀疏数组的定义:
原二维数组,里面有很多重复的数据.将其转换成稀疏数组压缩空间
我做了一个压缩重复值为0的utils包...其他数字可能需要使用填充
请看:
public static int[][] getXiShuInt(int[][] arr,int a){
if (arr == null) {
return new int[0][0];
}
//统计有多少个不同的数据
int sum = 0;
//循环二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if (arr[i][j]!=a){
sum++;
}
}
}
//创建稀疏数组
int[][] array = new int[3][sum+1];
//给系数数组添加表头
array[0][0]=arr.length;
array[0][1]=arr[0].length;
array[0][2]=sum;
//统计个数
int cunit = 0 ;
//遍历原数组获得差异数据的信息
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if (arr[i][j]!=a){
cunit++;
array[cunit][0]=i;
array[cunit][1]=j;
array[cunit][2]=arr[i][j];
}
}
}
return array;
}
public static int[][] XiShuToArr(int[][] xi){
//创建一个二维数组
int[][] arr = new int[xi[0][0]][xi[0][1]];
for (int i = 1; i < xi[0].length; i++) {
arr[xi[i][0]][xi[i][1]] = xi[i][2];
}
return arr;
}
总结:
将原二维数组转换成 固定一维3的新二维数组 [0]记录的是二维数组声明空间信息.往后都是记录不通值的坐标+数值.依次传入新二维数组.从而压缩了原来所有的数值<扎总结>
今天是第3天写博客,坚持.坚持26天养成一种习惯.加油!
原文:https://www.cnblogs.com/Mr-Dacon/p/13456529.html