黑马程序员技术交流社区

标题: 关于可变参数 [打印本页]

作者: 唐林渊    时间: 2012-3-18 20:53
标题: 关于可变参数
求教  所谓的可变参数指的是什么?他是在数组中可以用,还是在集合中可以用
作者: 杨波    时间: 2012-3-18 21:05
可变参数指参数的个数不确定,举个例子:
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);
}
作者: 叶绍亮    时间: 2012-3-18 21:35
可变参数。适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项
作者: 四海为家    时间: 2012-3-18 22:48
int....nums:int(可变参数)其实就是一个数组
   好处:不用显示的创建数组,只要将数组中的元素作为参数进行传递即可。
            内部会自动将这些元素封装到一个数组中,并进行传递,
     该特性的好处就是简化书写。减少数组的定义。
注意事项:
        1,不要以为可以将所有的数组参数变成...
        2,可变参数只能定义在参数列表的结尾处(最后)。
作者: 李飞    时间: 2012-3-18 23:06
可变参数 格式:
   类型… 变量名
而且可变参数传入时,必须放在最后面

其实你可以把他看成是一个数组,只是它的元素个数是不确定的,而数组的个数是确定的
作者: 郑涛    时间: 2012-3-18 23:21
不用显式的创建数组,只要将数组中的元素作为参数进行传递即可。内部会自动将这些元素封装到一个数组中,并进行传递。减少了数组的定义,简化了书写。可变参数只能定义在参数列表的结尾处。
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
可变参数,是函数参数的个数可变,但参数类型是已定的;
数组的定义,只有一个参数,那就是数组的长度,而数组的长度是固定的,不像集合;
作者: liumeng    时间: 2012-3-19 12:29
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();
        }
}
也可以传数组




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2