1.获取数组的长度
数组名称.length
将获得一个int数字,代表数组的长度。
public class demo05_ArrayLength {
public static void main(String[] args) {
int[] arrayA = new int [3];
int[] arrayB = new int[]{10,20,30,3,5,4,6,8,7};
int len = arrayB.length;
System.out.println("数组的长度为"+len);
}
}
数组一旦创建,程序运行期间,长度不可改变。
两个new代表创建了两个数组,arrayC前后代表的是两个数组,只是存储的地址改变了!
int[] arrayC = new int[3];
System.out.println(arrayC.length);//3
arrayC = new int [5];
System.out.println(arrayC.length);//5
//两个new代表创建了两个数组,arrayC前后代表的是两个数组,只是存储的地址改变了!
2.数组的遍历输出
直接用.length方法获取数组长度,并进行循环即可
package cn.edu.qilu.day1.demo05;
public class demo06_ArrayOut {
public static void main(String[] args) {
int[] array = {15,25,30,40,50};
//次数循环
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}
3.求出数组的最值
package cn.edu.qilu.day1.demo05;
public class demo07__ArrayMax {
public static void main(String[] args) {
int[] array = {5,55,6,4,8,100,5,3};
int max = array[0];
for(int i=1;i<array.length;i++){
if(array[i]>max){
max = array[i];
}
}
System.out.println("max="+max);
}
}
package cn.edu.qilu.day1.demo05;
public class demo07__ArrayMax {
public static void main(String[] args) {
int[] array = {5,55,6,4,8,100,5,3};
int max = array[0];
for(int i=1;i<array.length;i++){
if(array[i]>max){
max = array[i];
}
}
System.out.println("max="+max);
}
}
4.数组元素反转
package cn.edu.qilu.day1.demo05;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class demo08_ArrayReverse {
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8};
int len = array.length;
for(int i =0;i<len;i++){
System.out.println(array[i]);
}
System.out.println("===========");
int min = 0;
int max = array.length-1;
int t;
while(min<max){
t = array[min];
array[min] = array[max];
array[max] = t;
min++;
max--;
}
len = array.length;
for(int i =0;i<len;i++){
System.out.println(array[i]);
}
}
}
```java
1
2
3
4
5
6
7
8
===========
8
7
6
5
4
3
2
1
Process finished with exit code 0
5.数组作为方法参数_传递地址
package cn.edu.qilu.day1.demo05;
public class demo09_ArrayParam {
public static void main(String[] args) {
int[] array1 = {1,2,3,4,5};
ArrayPrint(array1);
float[] array2 = {1.1f,2.1f,3.1f,4.1f,5.1f};
ArrayPrint(array2);
int[] array3 = {1,2,3,4,5,88,99,};
ArrayPrint(array3);
}
//数组作为方法参数(传递地址)
public static void ArrayPrint(int[] array){
System.out.println("地址为"+array);
for(int i =0;i<array.length;i++){
System.out.println(array[i]);
}
System.out.println("==========");
}
//重载
public static void ArrayPrint(float[] array){
System.out.println("地址为"+array);
for(int i =0;i<array.length;i++){
System.out.println(array[i]);
}
System.out.println("==========");
}
}
地址为[I@1b6d3586
1
2
3
4
5
==========
地址为[F@4554617c
1.1
2.1
3.1
4.1
5.1
==========
地址为[I@74a14482
1
2
3
4
5
88
99
==========
Process finished with exit code 0
6.数组作为方法返回值_返回地址
package cn.edu.qilu.day1.demo05;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class demo10_ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10,20,30);
System.out.println("sum="+result[0]);
System.out.println("avg="+result[1]);
System.out.println("result地址为"+result);
}
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; //平均数
System.out.println("array地址为"+array);
return array; //返回数组地址
}
}
array地址为[I@1b6d3586
sum=60
avg=20
result地址为[I@1b6d3586
Process finished with exit code 0
可以看到,array和result的地址值相同,印证了此方法传递的是地址这一说法!