A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐林渊 黑马帝   /  2012-3-18 20:53  /  2553 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求教  所谓的可变参数指的是什么?他是在数组中可以用,还是在集合中可以用

7 个回复

倒序浏览
可变参数指参数的个数不确定,举个例子:
public static void testArray(int...intArray)
{
  for(int i: intArray)
  {
   System.out.print(i +" ");
  }
此方法可接收不定个数的整型参数。
来一个调用:
public static void main(String args[])
{
      testArray(1,2,3,4);
      testArray(1,2);
}

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
可变参数。适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项
回复 使用道具 举报
int....nums:int(可变参数)其实就是一个数组
   好处:不用显示的创建数组,只要将数组中的元素作为参数进行传递即可。
            内部会自动将这些元素封装到一个数组中,并进行传递,
     该特性的好处就是简化书写。减少数组的定义。
注意事项:
        1,不要以为可以将所有的数组参数变成...
        2,可变参数只能定义在参数列表的结尾处(最后)。
回复 使用道具 举报
可变参数 格式:
   类型… 变量名
而且可变参数传入时,必须放在最后面

其实你可以把他看成是一个数组,只是它的元素个数是不确定的,而数组的个数是确定的
回复 使用道具 举报
不用显式的创建数组,只要将数组中的元素作为参数进行传递即可。内部会自动将这些元素封装到一个数组中,并进行传递。减少了数组的定义,简化了书写。可变参数只能定义在参数列表的结尾处。
int num=add(4,1,3,5,7,34);
public static int add(int... Nums){
System.out.println(nums.length);
return 0;
}
   
回复 使用道具 举报
OMG 中级黑马 2012-3-19 11:28:49
7#
可变参数,是函数参数的个数可变,但参数类型是已定的;
数组的定义,只有一个参数,那就是数组的长度,而数组的长度是固定的,不像集合;
回复 使用道具 举报
public class TestTurn {
        public static void main(String[] args) {
                testArray(1,2,3,4);
        testArray(new int[]{1,2,3,4});
        
        }


        public static void testArray(int...intArray)
        {
          for(int i: intArray)
          {
           System.out.print(i +" ");
          }
          System.out.println();
        }
}
也可以传数组
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马