P90 获取数组的长度
格式:
数组名称.length
数组一旦创建,程序运行期间,长度不可更改
int []arrayC=new int[3];
System.out.println(arrayC.length);//3
arrayC=new int[5];//在堆中开辟了新的内存
System.out.println(arrayC.length);//5
注意有一个新的new之后,栈中array地址改变了,
P91 数组的遍历输出
遍历:
对每一个元素进行挨个处理,默认的处理方式是打印输出
方法:
- for循环,与数组长度有关
P93 数组元素反转
如何理解反转
- 即对称位置的元素交换
- 需要两个数组位置索引
int min=0;
int max=array.length-1;
反转步骤
-
1、找到对称位置的两个元素
-
2、将两个元素交换位置
**如何交换** - 3个小圆圈走了一个循环 - 利用temp倒手![在这里插入图片描述](https://img-blog.csdnimg.cn/20201016192943684.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lxeWJlc3Q=,size_16,color_FFFFFF,t_70#pic_center)
-
3、什么时候停止交换
-
奇数个元素:min==max
-
偶数个元素:min>max
min<max时应该交换
public class DemoArrayReverse {
int[]array={10,20,30,40,50};
//打印原本数组的样子
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
system.out.println("======");
//利用for循环完成元素交换
//循环体内纯粹交换元素
//条件中元素依次交换
for(int min=0,max=array.length-1;min<max;min++,max--){
int temp=array[min];
array[min]=array[max];
array[max]=temp;
}
}
P94 数组作为方法参数传递地址
任何数据类型都能作为方法参数
main函数中形参处传入数组地址【数组名】,在子函数中接收的是该数组地址【数组名】
P95 数组作为方法返回值返回地址
用处:当一个函数有多个值需要返回时
可以理解为用一个塑料袋装住需要的数值!
两个方法:
//方法一:动态初始化
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;
}
//方法二:静态初始化
public static int[] calculate(int a,int b,int c){
int sum=a+b+c;
int avg=sum/3;
//两个结果都需要返回值
//方法二:静态初始化,值不一定是常量,也可以为变量
int[]array={sum,avg};
return array;
如何调用:
public static void main(String[] args) {
int[]result=calculate(1,2,3);//❗❗❗注意也是用一个result数组装计算结果,因为计算结果返回的就是数组
System.out.println("总和:"+result[0]);
System.out.println("平均数:"+result[1]);
}
需要注意:
- 数组作为方法的参数,传递进去的其实是数组的地址
- 数组作为方法的返回值,返回的也是数组的地址值
❗❗数组名表数组地址