巩固java(六)----java中可变参数方法(非常实用哦)
来源:互联网 发布:八皇后问题原理与算法 编辑:程序博客网 时间:2024/06/06 16:25
java提供了可变参数的方法,即方法的参数个数可以不确定,用"..."定义。
import java.util.ArrayList;import java.util.List;public class VariableParameter {//求若干个整型数中的最大值 public int getMax(int... items){ //定义可变参数items int max = Integer.MIN_VALUE; //次数为int能表示的最小值,值为-2147483648 for(int item : items){ max = item > max? item : max; //取大值 } return max; }//返回比number大的数的个数 public int getLagerNum(int number,int... items){ //若除了可变长参数还有其它参数,可变长参数一定要放在最后 int sum = 0; for(int item : items){ if(item > number){ sum++; } } return sum; } public static void main(String[] args) {VariableParameter vp = new VariableParameter();System.out.println("最大值:"+vp.getMax()); //可以不写参数System.out.println("最大值:"+vp.getMax(2,1,4,7,2,-1,3,3)); //可以在参数中直接写入若干个参数System.out.println("最大值:"+vp.getMax(-1,4,5,0,1)); //可以在参数中直接写入若干个参数 System.out.println("比number大的数的个数:"+vp.getLagerNum(9, 1,11,5,14,-1,9,21)); //9为number,后边的是items int a[] = new int[] {1,11,5,14,-1,9,21}; System.out.println("比number大的数的个数:"+vp.getLagerNum(9,a)); //items也可以用数组替代 }}运行结果如下:
最大值:-2147483648最大值:7最大值:5比number大的数的个数:3比number大的数的个数:3
从上面代码可以看出:
1.在方法中定义可变参数后,我们可以像操作数组一样操作该参数;
2.如果该方法除了可变参数还有其它的参数,可变参数必须放到最后;
3.调用使用了可变参数的方法时:
a.可以不写参数,即传入空参;
b.可以直接在里边写入参数,参数间用逗号隔开;
c.可以传入一个数组;
继续往下看:
public class VariableParameter { public void comp(int... items){ System.out.println("1"); } public void comp(int item1,int item2){ System.out.println("2"); } public static void main(String[] args) {VariableParameter vp = new VariableParameter();vp.comp(1, 2);}}运行结果:
2
由此可以看出:
4.拥有可变参数的方法可以被重载,在被调用时,如果能匹配到参数定长的方法则优先调用参数定长的方法。
继续:
public class VariableParameter { public void comp(int... items){ System.out.println("1"); } public void comp(int[] items){ //会报错:Duplicate method comp(int[]) in type VariableParameter System.out.println("2"); } public static void main(String[] args) {}}
当试图使用数组作为参数去实现重载时,会报错,说明可变参数与数组冲突,但是:
public class VariableParameter { public void comp(int[] items){ //会报错:Duplicate method comp(int[]) in type VariableParameter System.out.println("2"); } public static void main(String[] args) {VariableParameter vp = new VariableParameter();vp.comp(1,2,3,4); //The method comp(int[]) in the type VariableParameter is not applicable for the arguments (int, int, int, int)}}如果定义一个参数为数组的方法,像调用可变参数的方法一样调用它是会报错,说明可变参数并不是一个数组,由此我们可以总结出:
5:可变参数可以兼容数组参数,但数组参数无法兼容可变参数。
1 0
- 巩固java(六)----java中可变参数方法(非常实用哦)
- Java学习笔记(24)--可变参数方法(非常实用哦)
- java中可变参数方法
- java 可变参数方法
- JAVA 可变参数方法
- java可变参数方法
- java 方法可变参数
- Java可变参数方法
- Java可变参数方法
- java可变参数方法
- java中参数数量可变的方法
- java 方法中可变参数的使用
- Java中可变长参数的方法
- Java中方法的可变参数
- Java中可变参数
- Java中可变参数
- java中可变参数
- Java中可变参数
- IIS 下配置PHP
- 2015年移动Web/HybridApp开发技能列表
- MFC的记事本
- xml写入
- HTML基础知识
- 巩固java(六)----java中可变参数方法(非常实用哦)
- Java面试题集(1-50)
- android开发之DatePickerDialog与TimePickerDialog的使用
- Windows系统下面安装(Python)的setuptools的步骤
- Unicode 及其编码
- 编程变量命名规范
- linux系统-shell编程-一个简单的shell程序
- Spark Configuration(Spark配置)
- oracle数据库安装后的系统表