一、方法重载
方法名相同,参数不同。
二、可变参数
在方法声明中,在指定参数类型后加一个省略号。
一个方法只能指定一个可变参数,它必须是方法的最后一个参数。
public static void main(String[] args) {
printMax(1,2,5,88,4,2);
}
public static void printMax(double... numbers){
double re = numbers[0];
for (int i = 0; i < numbers.length; i++) {
if(numbers[i] > re){
re = numbers[i];
}
}
System.out.println(re);
}
三、递归
递归头:什么时候不调用自身方法。
递归体:什么受需要调用自身方法。
public static int fun(int n){
if(n==1){
return 1;
}else {
return n*fun(n-1);
}
}
四、数组
相同数据类型的有序集合。
4.1基础
1.声明
int[] nums;(首选)
int nums[]:
2.声明+创建
int[] nums = new int[10];(可以存放10个int类型的数字)
3.赋值
nums[0] = 1;
长度:nums.length
4.初始化(声明+创建+赋值)
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
1.静态初始化
int[] nums = {1,2,3,4,5};
2.动态初始化(包含默认初始化)
int[] a = new int[10];
int a[0] = 1;
5.使用
1.普通的for循环
2.for-each循环(array.for)
for (int num : nums) { System.out.println(num); }
3.数组作方法入参
4.数组作返回值
public static int[] revers(int[] array) { int[] result = new int[array.length]; for (int i = 0, j = array.length - 1; i < array.length; i++, j--) { result[j] = array[i]; } return result; }
4.2多维数组
int[][] a = new int[2][5];
int[][] a = {{2,3,4},{{3,4,5},{1,2,3}};
Array类
1.打印数组
Arrays.toString(nums);
2.排序
Arrays.sort(nums);
3.填充
Arrays.fill(array,value);
4.3冒泡排序
public static int[] sort(int[] array){ int temp = 0; for (int i = 0; i < array.length-1; i++) { for (int j = 0; j < array.length-i-1; j++) { if(array[j+1]>array[j]) { temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; } } } return array; }
4.4稀疏数组
压缩
解压