@author 小焕哥
数组(下)
1.数组的复制
1.1指定位置和长度复制
import.java.util.Arrays;//在包名后导入
System.arraycopy(a,1,a1,0,4);
/*
a:源数组
1:源数组起始下标
a1:目标数组
0:目标数组起始下标
4:要复制的元素个数
*/
ps1:定义一个指定长度的默认值数组的语法为
int[] arr=new int[5];//定义一个整形包含五个默认元素的数组
ps2:灵活性好,效率高。
1.2自动从头复制
import.java.util.Arrays;//在包名后导入
int[] a={10,20,30,40,50};
int[] a1=Arrays.copyOf(a,6);
a=Arrays.copyOf(a,a.length+1);//数组的扩容
ps:数组a中的元素复制到a1中,多则补默认值,少则截断
2.数组的排序
2.1最快的排序方法
import.java.util.Arrays;//在包名后导入
a=Arrays.copyOf(a,a.length+1);//数组的扩容
arr[arr.length-1]=max;//将最大值赋值给扩容后的数组的最后一个元素
- 当元素数少的时候用任何方法排序都一样。
- 对于元素较多的数组,交换越少,效率越高。
- 数据类型不同,算法优劣不同。
- 一直最快的排序方式
Arrays.sort(arr);
2.2冒泡排序
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int t = arr[j];
arr[j] = arr[j+1];
arr[j+1]=t;
}
}
}
方法
1.什么是方法
- 方法用于封装一段特定的逻辑功能。
- 方法可以在程序中被反复调用。
- 方法可以减少代码重复,便于程序的维护。
- 尽可能独立,一个方法只干一件事。
2.方法的语法
修饰符+方法返回值类型+方法名+(参数列表){
方法体
}
- 修饰符:可选,public/protected/private
- 返回值类型:必选,指定返回值的数据类型,如没有返回值用关键字void进行标识
- 方法名:必选,方法名建议使用驼峰命名法
- 参数列表:可选,用于指定方法中所需要的参数,多个参数用逗号隔开,参数可以是java中的任意数据类型。
- 方法体:可选,指定完成某种工作,当方法体省略时,注意后面的大括号不可省略。
3.方法的调用
- 在main方法中调用别的方法
- 无参无返回值:方法名()
public static void main(String[] args) {
say();
}
public static void say() {
System.out.println("helloworld");
}
- 有参无返回值:方法名(参数)//数据类型必须匹配
public static void main(String[] args) {
money(500);
}
public static void money(int a) {
System.out.println("i have $"+a);
}
- 无参有返回值:数据类型+变量名=方法名()
public static void main(String[] args) {
double a = num();
System.out.println(a);
}
public static double Num(){
return 23.1;
}
- 有参有返回值:数据类型+变量名=方法名(参数)
public static void main(String[] args) {
int b = num(5,6);
System.out.println(b);
}
public static int plus(int num1,int num2) {
int num3=num1+num2;
return num3;
}
4.注意事项
- return 值;//1.结束方法的执行 2.返回结果给调用方
- return;//结束方法的执行,一般用于无返回值的方法
- 方法可以嵌套调用