获取数组长度
格式:数组名.length
eg:
public class class1 {
public static void main(String[] args) {
int [] array={10,20,40,50,80,41};
int len=array.length;
System.out.println("数组的长度是"+len);
}
}
数组的遍历输出
使用for循环从第一个元素开始,依次遍历下一个元素,直到所有元素都被访问到。
eg:
public class class1 {
public static void main(String[] args) {
int[] arrayB={10,12,34,5,6,7,8,4,2,12,43};
//数组的遍历
for (int i = 0; i <arrayB.length ; i++) {
System.out.print(arrayB[i]+" ");
}
}
}
备注:快捷键:
数组名.length.fori+enter键
求数组中的最值
public class class1 {
public static void main(String[] args) {
int [] array={10,20,40,50,80,41};
int max=array[0];
//数组的最大值
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
if(max<=array[i]) {
max=array[i];
}
}
System.out.println();
System.out.println("该数组的最大值是"+max);
System.out.println("***********************");
}
}
数组元素反转
1.数组元素反转,其实就是对称位置的元素交换。
2.通常遍历数组用的是一个索引:
int i= 0;
现在表示对称位置需要两个索引:
int min = 0;
int max = array.length - 1;
当数组长度为奇数时:
当数组长度为偶数时:
3.如何交换两个变量的值?
int a = 10;
int b = 20;
如果是两个水杯,都是满的,如何交换?借助第三个空杯子。
int temp = a;
a=b;
b = temp;
即,max和min通过第三方(temp)交换,交换后max-1,min+1;
直到min>max(当数组长度为偶数时)
或者min=max(当数组长度为奇数时)停止交换。
eg:
public class class1 {
public static void main(String[] args) {
int[] arrayB={10,12,34,5,6,7,8,4,2,12,43};
//数组的遍历
for (int i = 0; i <arrayB.length ; i++) {
System.out.print(arrayB[i]+" ");
}
System.out.println();
//数组的反转
int temp=0;
for (int min1=0, max1=arrayB.length-1;min1<max1;min1++,max1--) {
temp=arrayB[min1];
arrayB[min1]=arrayB[max1];
arrayB[max1]=temp;
}
System.out.println("反转后的结果是:");
for (int i = 0; i <arrayB.length ; i++) {
System.out.print(arrayB[i]+" ");
}
}
}
数组作为方法参数——传值
数组可以作为方法的参数。
当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。|
public class class2 {
public static void main(String[] args) {
int[] array={1,112,3,4,5,6,8,15};
printArray(array);
}
public static void printArray(int[] array) {
System.out.println("printArray方法收到的参数是: ");
System.out.println(array); //地址值|
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
数组作为方法返回值——返回
一个方法可以有0、1、多个参数;但是只能有0或者1个返回值,不能有多个返回值。
如果希望一个方法当中产生了多个结果数据进行返回,怎么办?
解决方案:使用一个数组作为返回值类型即可。
public class class2 {
public static void main(String[] args) {
int[] result = calculate( 10,20,30) ;
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;
}
}
对最后两个大标题的总结:
任何数据类型都能作为方法的参数类型,或者返回值类型
数组作为方法的参数,传递进去的其实是数组的地址值。
数组作为方法的返回值,返回的其实也是数组的地址值。|