• 90.Java可变参数


    可变参数

    JDK中具有可变参数的类Arrays.asList()方法。

    分别传多个参、传数组,传数组又传参的情况。

    注意:传入基本数据类型数组的问题。

    从JDK 5开始, Java 允许为方法定义长度可变的参数。

    语法:数据类型…变量名。

    可变长参数是Object[] 数组。(可变参数里存的是对象数组)

    JDK中的典型应用:

         Arrays.asList(T…a)是jdk中的典型应用。

    需求:对若干个整数进行求和

    public static int sum1(int a,int b ) {
            return a+b;
        }

    若干个整数求和如何解决?

    可以使用数组接收整数。

    public static int sum1(int[] numbers) {
            if (numbers == null) {
                return 0;
            }
    
            if (numbers.length == 0) {
                return 0;
            }
    
            int sum = 0;
            for (int num : numbers) {
                sum += num;
            }
            return sum;
        }

    可以使用可变参数

    public static int sum2(int... numbers) {
            if (numbers == null) {
                System.out.println("可变参数的值为null");
                return 0;
            }
    
            if (numbers.length == 0) {
                System.out.println("可变参数的值的长度为0");
                return 0;
            }
    
            int sum = 0;
            for (int num : numbers) {
                sum += num;
            }
            return sum;
        }

    可变参数的使用

    public static void main(String[] args) {
            // int result = sum1(new int[] { 1, 3, 5, 7, 9 });
            // System.out.println(result);
    
            // // 使用了可变参数,传一个数组进去
            // int result = sum2(new int[] { 1, 3, 5, 7, 9 });
            // System.out.println(result);
    
            // 使用了可变参数,不必声明数组,简化书写
            // int result = sum2(2, 4, 6, 8, 10);
            // int result = sum2(1);
            int result = sum2();
            System.out.println(result);
        }

    可变参数的细节

    声明:

          在一个方法中,最多只能有一个可变参数。

          可变参数只能放在参数列表的最后面。

       调用:

          当使用可变参数时,可以传0或多个参数。

          当使用可变参数时,也可以传一个数组进去,就表示多个参数。

       使用:

          在方法内部使用时,就是在使用一个数组。

          当调用时没有传参数时(传了0个),这时在方法内部的参数数组是有值的(不为null),但长度为0.

    author@nohert
  • 相关阅读:
    JAVA调用WCF
    写代码之前要做什么?
    漫谈界面和数据
    UIButton 简易的UI
    数据结构利器之私房STL(中)
    有趣的位运算
    基于TCP的C/S初级网络编程1
    数据结构利器之私房STL(上)
    Unix/Linux 那些系统启动后的进程
    【字符串匹配】KMP算法之道
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624140.html
Copyright © 2020-2023  润新知