二 . 参数为数组,遍历数组的方法
数组为引用数据类型,可作为形式参数给到方法!
我们可以写一个方法专门遍历数组,只需要传一个数组给到方法就好!
具体代码如下:
public class Demo04 {
/**
* 遍历数组的方法
* @param array 参数为数组类型的array
*/
public static void arrayInfo(int[] array) {
System.out.print("[");
for(int i = 0;i < array.length;i++) {
if(i < array.length-1) {
System.out.print(array[i]+", ");
}else {
System.out.print(array[i]);
}
}
System.out.println("]");
}
/**
* 程序主入口 main
* @param args
*/
public static void main(String[] args) {
//调用本类的方法,直接写 方法名() 即可
arrayInfo(new int[] {0,1,2,3,4,5});
}
}
输出如下 :
[0, 1, 2, 3, 4, 5]
这里我们就要提到另一种格式 : 可变个数形参 ;
具体使用:
① 可变个数形参的格式 : 数据类型 ... 变量名
② 当调用可变个数形参的方法时,传入的参数个数可以是 0个,1个,2个...
③ 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载,换句话说,二者不能并存!(方法重载在下一节中讲到)
④ 可变个数形参在方法的形参中,必须声明在末尾
⑤ 可变个数形参在方法的形参中,最多只能声明一个可变形参
举例说明:
public class Demo04 {
/**
* 遍历数组的方法
* @param array 参数为数组类型的array
*/
public static void arrayInfo(int [] array) {
System.out.print("[");
for(int i = 0;i < array.length;i++) {
if(i < array.length-1) {
System.out.print(array[i]+", ");
}else {
System.out.print(array[i]);
}
}
System.out.println("]");
}
/**
* 遍历数组的方法
* @param array 参数为可变个数形参 array
*/
public static void arrayInfo1(int... array) {
System.out.print("[");
for(int i = 0;i < array.length;i++) {
if(i < array.length-1) {
System.out.print(array[i]+", ");
}else {
System.out.print(array[i]);
}
}
System.out.println("]");
}
/**
* 程序主入口 main
* @param args
*/
public static void main(String[] args) {
//调用本类的方法,直接写 方法名() 即可
arrayInfo(new int[] {0,1,2,3,4,5});
//arrayInfo(0,1,2,3,4,5);
arrayInfo1(0,1,2,3,4,5);
}
}
输出如下 :
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
如下图,数组类型只能传数组,而可变个数形参比起数组来说更加灵活好用;
形参列表有多个,包含一个可变个数形参;
public class Demo05 {
/**
* 遍历数组的方法
* @param array 参数为可变个数形参 array
*/
public static void arrayInfo1(int a,int... array) {
System.out.print("a的值为:"+a+"\t");
System.out.print("[");
for(int i = 0;i < array.length;i++) {
if(i < array.length-1) {
System.out.print(array[i]+", ");
}else {
System.out.print(array[i]);
}
}
System.out.println("]");
}
/**
* 程序主入口 main
* @param args
*/
public static void main(String[] args) {
//调用本类的方法,直接写 方法名() 即可
//arrayInfo(0,1,2,3,4,5);
arrayInfo1(0,1,2,3,4,5);
}
}
输出如下:
a的值为:0 [1, 2, 3, 4, 5]
第一个int类型的参数a默认为我们传进去的第一位数字, 所以有以上输出结果.
下图为两个错误信息:
如上图,可变个数形参必须在参数列表末尾!
如上图,可变个数形参在列表中只能声明一个!