#数组
##求数组长度+遍历数组+求数组中的最大值+数组反转
public class Demo8 {
public static void main(String[] args) {
int[] arrayA=new int[3];
int[] arrayB={23,4,6,-29,55,99};
int len=arrayB.length;
System.out.println("arrayB数组的长度是;"+len);
int[] arrayC=new int[3];
System.out.println(arrayC.length);
arrayC=new int[5];
System.out.println(arrayC.length);
System.out.println("=================");
//遍历数组
for (int i = 0; i < arrayB.length; i++) {
System.out.println(arrayB[i]);
}
System.out.println("=================");
//求数组中的最大值
int max=arrayB[0];## 标题
for (int i = 1; i <arrayB.length ; i++) {
if(arrayB[i]>max)
max=arrayB[i];
}
}
System.out.println("最大值:"+max);
}
}
//数组元素反转
public class Demo03ArrayReverse {
public static void main(String[] args) {
int[] array={20,30,40,50,60};
//遍历数组
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("=============");
/*
初始化语句:int min=0, max=array.length-1;min<max;min++,max--
条件判断:min<max
步进表达式:min++,max--
循环体:用第三个变量倒手
*/
for(int min=0, max=array.length-1;min<max;min++,max--){
int temp=array[min];
array[min]=array[max];
array[max]=temp;
}
//再次打印遍历输出数组后的样子
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
##数组反转
1.数组元素反转,其实就是对称位置的元素交换
2.通常遍历数组用的是一个索引
int i=0;
现在表示对称位置需要两个索引:
int min=0;
int max=array.length-1;
3.如何交换两个变量的值?借助第三个空杯子
int temp=min;
min=max;
max=temp;
(得到的数组元素将是最大值排在前面)
4.什么时候停止交换?(1)min>max (2)min=max
5.什么时候应该交换?min<max
##数组作为方法的参数
1.原理:当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值
public class Demo04ArrayParam {
public static void main(String[] args) {
int[] array=new int[]{30,40,50,60,70};
System.out.println(array);//打印地址值
printArray(array);
System.out.println("=========AAA=========");
printArray(array);
System.out.println("=========BBB=========");
}
public static void printArray(int array[]){
System.out.println("printArray方法收到的参数是;");
System.out.println(array);//地址值
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
##用数组返回多个值
###1.一个方法可以有0,1,多个参数,但是只能有0或者1个返回值,不能有多个返回值
如果希望一个方法当中产生了多个结果数据进行返回,怎么办?
2.解决方案:使用一个数组作为返回值类型即可
public class Demo05ArrayReturn {
public static void main(String[] args) {
int[] result=calculate(10,20,98);//赋值调用
System.out.println("总和:"+result[0]);
System.out.println("平均数:"+result[1]);
}
public static int[] calculate(int a,int b,int c){
int sum=a+b+c;//总和
int avg=sum/3;//平均数
/* 方法一:int[] array=new int[2];
array[0]=sum;
array[1]=avg;
*/
int[] array={sum,avg};
return array;
}
}
3.总结:任何数据类型都能作为方法的参数类型,或者返回值类型。
数组作为方法的参数,传递进去的其实是数组的地址值。
数组作为方法的返回值,返回的其实也是数组的地址值