关闭

可变参数

标签: foreach语句iterator可变参数
114人阅读 评论(0) 收藏 举报
分类:

主要是用来编写框架。
Arrays.aslist()传个参,传数组,传数组又传参。
可变参数必须在传参列表的最后一个。
原理:int… args 相当于 int[] args 调用时 传入任意个数参数,任意个数的参数,都会被保存到参数数组中。
代码示例:

@Test
    public void demo2() {

        System.out.println(add(10, 20, 30));
        System.out.println(add(20, 30));
        System.out.println(add());
        System.out.println(add(new int[] { 1, 2, 3, 4, 5, 6 }));

    }

    // 定义一个可以使用可变参数的方法,可以传入多个参数 进行求和
    public int add(int... args) {
        int sum = 0;
        for (int i : args) {
            sum += i;
        }
        return sum;
    }

    @Test
    public void demo1() {
        // 使用Arrays.list将数组转换为list
        int[] arr = { 1, 2, 3 };
        List<int[]> list = Arrays.asList(arr);
        System.out.println(list.size());// 1

        Integer[] arr2 = { 1, 2, 3 };
        List<Integer> list2 = Arrays.asList(arr2);
        System.out.println(list2.size());// 3
        // list3的arraylist不是通常意义上的,它不能改变长度 ,即不能增加或者删除元素
        List<Integer> list3 = Arrays.asList(10, 20, 30);
        System.out.println(list3.size());// 3

        List list4 = Arrays.asList(arr2, 10, 20);
        System.out.println(list4.size());// 3

    }
0
0
查看评论

Python中的可变参数

Python中函数的参数有4种形式,分别是: 位置或关键字参数(Positional-or-keyword parameter)仅位置的参数(Positional-only parameter)任意数量的位置参数(var-positional parameter)任意数量的关键字参数(var-...
  • nyist327
  • nyist327
  • 2015-08-28 20:19
  • 1274

Java中的可变参数使用

1.可变参数的定义从JDK1.5之后,java就提供了变长参数(variable arguments,varargs)。我们在定义方法的时候,可以使用不确定个数的参数。对于同一个方法,也可以通过不确定参数个数的方式进行重载。首先来看个最简单的例子:public void printArray(Str...
  • bitcarmanlee
  • bitcarmanlee
  • 2016-08-26 18:12
  • 2211

巩固java(六)----java中可变参数方法(非常实用哦)

java提供了可变参数的方法,即方法的参数个数可以不确定,用"..."定义。 import java.util.ArrayList; import java.util.List; public class VariableParameter { //求若干个整型数中...
  • u012116457
  • u012116457
  • 2015-04-18 17:41
  • 11320

java 可变参数传值

到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到...
  • Happy_wu
  • Happy_wu
  • 2016-11-15 18:33
  • 1385

Java一个方法使用可变参数技巧

很久没有写日志了,最近由于项目紧张在研究一些Java的反射机制,想利用该机制更好的完善和封装项目还有代码,今天在研究反射时,沈阳斌子遇到一个问题就是封装一个方法时有可变参数的问题,经上网查找找到如下方式和技巧。 编写Java程序时,经常会遇到一个方法需要多个参数的情况。例如一个求和方法: p...
  • svrsimon
  • svrsimon
  • 2014-06-09 17:21
  • 1124

C语言可变参数的函数实现

在C语言中,有一种参数个数、类型不固定的函数,称之为变参函数,比如常用的printf函数。当我们在输出log信息时,也希望能写一个变参函数作为接口。这里介绍下如何写变参函数。  一、参数宏 先来看几个设计变参函数要用到的几个宏,这几个宏定义在stdarg.h文件中。 ty...
  • hzyong_c
  • hzyong_c
  • 2011-03-15 23:17
  • 4028

c++ 中怎么传递可变参数

可变参数不能直接传递,可以借用 va_list void Log(const char * szFormat, ...); const QString GetFormatStr(const char * szFormat, va_list args ); voi...
  • tangaowen
  • tangaowen
  • 2016-12-14 14:01
  • 2431

Java 中的可变参数(Varargs)

1.前言最近在Android开发时要使用AsyncTask类,其中要重写这么一个方法:protected String doInBackground(String... params) { }这里的params便是可变参数。2.详解String[]和String…的本质相同(都是字符串数组)。 以...
  • hzh_csdn
  • hzh_csdn
  • 2017-02-21 12:06
  • 178

Python的三种可变参数

初学python没多久,对python中函数的可变参数有点头晕,查阅了stackflow,现总结一下 可变参数可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如def testArg(*arg)你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或列表...
  • a2211455
  • a2211455
  • 2016-12-29 15:46
  • 1804

Python可变参数函数的实现

同C语言一样,Python中也有可变参数
  • huangkangying
  • huangkangying
  • 2014-06-25 21:02
  • 3707
    个人资料
    • 访问:18957次
    • 积分:729
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条