今天学习了数组的后半部分和方法前面的一部分。
一、数组
复制:
1.int[] a={1,23,54,12,45};
int[] b=new int[];
//a:源数组
//0:源数组的起始位置
//b:目标数组
//1:目标数组的起始位置
//3:要复制的元素数
System.arraycopy(a,0,b,1,3);
2.1)import java.util.Arrays;
2)int[] a={1,545,3212,456,12};
//a:源数组
//b:目标数组
//6:目标数组的长度
//---当目标数组的长度>源数组长度时,目标数组后面的元素补默认值
//---当目标数组的长度<源数组长度时,源数组后面多余的元素截掉
int[] b=Arrays.copyOf(a,6);
a=Array.copyOf(a,6); ---------数组的扩容(创建一个更大的数据组把元素复制进去)
排序:是对数组施加的最常见的算法
Arrays.sort(arr); //升序排序
二、方法/函数/过程(vb)
封装一段特定的业务逻辑功能
方法要尽可能独立,一个方法只做一件事
方法可以被反复多次调用
方法可以减少代码重复,有利于后期的代码维护
何时用:只要是一个独立的业务,就建议抽到方法中
三、方法的定义:五要素
修饰词 返回值类型 方法名(参数列表){
方法体
}
四、方法的调用
无返回值:方法名(有参传参);
有返回值:数据类型 变量名=方法名(有参传参);
五、return
return 值; //1)结束方法的执行 2)返回值给调用方---------此方法用在有返回值的方法中
return; //结束方法的执行-----------------此方法用在无返回值的方法中
Java规定:1.有返回值的方法中,必须以return来返回数据
2.并且return后的数据必须与返回值类型匹配
六、补充
形参:定义方法时的参数
实参:调用方法时的参数
七、今日代码
import java.util.Arrays; public class Practice1 { public static void main(String[] args){ //3.方法的练习: //要求: //- 定义say()无参无返回值方法,调用测试 //- 定义sayHi()有一个参无返回值方法,调用测试 //- 定义sayHello()有两个参无返回值的方法,调用测试 //- 定义getNum()无参有返回值方法,演示return的用法,调用测试 //- 定义plus()两个参有返回值方法,调用测试 //- 定义testArray()用于生成整型数组填充随机数并返回数组,调用测试 say(); sayHi("无所事事的小鱼人"); sayHello("无所事事的小鱼人",21); double d=getNum(); System.out.println(d); int num=plus(5,321); System.out.println(num); int[] arr=testArray(); System.out.println(arr.length); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } System.out.println(arr[arr.length-1]); //2.数组排序的练习 //要求:声明整型数组并填充数据,排序,输出排序后数据,倒序输出数据 /* int[] arr=new int[10]; for(int i=0;i<arr.length;i++){ arr[i]=(int)(Math.random()*100); System.out.println(arr[i]); } Arrays.sort(arr); System.out.println("升序"); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } System.out.println("倒叙"); for(int i=arr.length-1;i>=0;i--){ System.out.println(arr[i]); } */ //1.MaxOfArray求数组元素最大值并放在最后一个元素的下一个位置 //要求:声明整型数组并填充随机数据,找到最大值,将数组扩容并将最大值放末尾 /* int[] arr=new int[10]; for(int i=0;i<arr.length;i++){ arr[i]=(int)(Math.random()*100); System.out.println(arr[i]); } int max=arr[0]; for(int i=1;i<arr.length;i++){ if(arr[i]>max){ max=arr[i]; } } System.out.println("最大值是"+max); arr=Arrays.copyOf(arr,arr.length+1); arr[arr.length-1]=max; for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); } */ } //- 定义testArray()用于生成整型数组填充随机数并返回数组,调用测试 public static int[] testArray(){ int[] arr=new int[10]; for(int i=0;i<arr.length;i++){ arr[i]=(int)(Math.random()*100); } return arr; } //- 定义plus()两个参有返回值方法,调用测试 public static int plus(int n1,int n2){ int num=n1+n2; return num; } //- 定义getNum()无参有返回值方法,演示return的用法,调用测试 public static double getNum(){ return 8.555; } //- 定义sayHello()有两个参无返回值的方法,调用测试 public static void sayHello(String name,int age){ System.out.println("大家好,我叫"+name+",我今年"+age+"岁了"); } //- 定义sayHi()有一个参无返回值方法,调用测试 public static void sayHi(String name){ System.out.println("大家好,我叫"+name+",我今年21岁了"); } //- 定义say()无参无返回值方法,调用测试 public static void say(){ System.out.println("大家好,我是无所事事的小鱼人,今年21岁了"); } }
public static void main(String[] args){ //1. 定义一个方法generate() // - 根据第一个参数生成指定长度的int数组; // - 根据第二个范围参数随机生成0到指定范围的随机数,填充到数组元素中,并将该数组返回; // - 测试数组内容。 int[] arr=generate(10,100); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } public static int[] generate(int len,int max){ int[] arr=new int[len]; for(int i=0;i<arr.length;i++){ arr[i]=(int)(Math.random()*(max+1)); } return arr; }