zoukankan      html  css  js  c++  java
  • JDK5.0新特性-可变参数

    可变参数:
    格式 类型... 变量
    本质上这个参数是一个数组。

    优点:1.传参数时可以传递数组,也可以传递多个值。
    2.可以不传递值.



    Arrays.asList()可以将数组转换成List集合.
    注意:得到的是一个固定长度的List集合。
    原因:是因为数组长度是固定的,这个集合是由数组转换成的。

    为什么要将数组转换成集合?
    集合中提供更丰富的操作.


    int[] arr = { 1, 2, 3 };
    List list = Arrays.asList(arr);
    System.out.println(list.size());

    System.out.println(list);

    将一个int[]转换成了List集合使用Arrays.asList方法
    得到的集合长度为1,集合中的元素是int[]为什么?

    集合中的元素是Object。
    因为我们现要转换的集合中的元素是int类型,不能直接装入到集合中(也没有进行装箱)
    这时就将数组对象做为了集合对象.List<int[]>

    -------------------------------

    package cn.itcast.param;
    
    import java.util.Arrays;
    import java.util.List;
    
    import org.junit.Test;
    
    //可变参数
    public class Demo {
    
        // // 求两个int数的和
        // public int sum(int a, int b) {
        // return a + b;
        // }
        //
        // // 求三个数的和
        // public int sum(int a, int b, int c) {
        // return a + b + c;
        // }
    
        // // 求n个数的和---使用数组解决
        // public static int sum(int[] arr) {
        // int sum = 0;
        // for (int i = 0; i < arr.length; i++) {
        // sum += arr[i];
        // }
        // return sum;
        // }
    
        public static int sum(int... a) {
            int sum = 0;
            for (int i = 0; i < a.length; i++) {
                sum += a[i];
            }
            return sum;
    
        }
    
        public static void main(String[] args) {
            // 求两个数的和
            int a = 10;
            int b = 20;
    
            // System.out.println(sum(new int[] { a, b })); // 需要人为手动进行包装.将数据包装到数组中。
    
            // 对于我们开发人员,使用不爽。------------想要包装,就包装,不想包装就不包装.----可以使用可变参数.
    
            System.out.println(sum(a, b));
    
            sum();
        }
    
        // 在一个方法内只能有一个可变参数,并且这个可变参数必须写在最后,不能在其后在有其它参数
    
        // public void demo(String...s,int b){} 可变参数后不可以在有参数
    
        // public void demo(String...s1,String...s2){} 一个方法内只能有一个可变参数。
    
        // public void demo(int b,String...s){} //只能在可变参数前加其它参数.
    
        // 可变参数示例 Arrays.asList() 它的作用可以将数组转换成集合.
    
        @Test
        public void demo() {
            // String[] s = { "a", "b", "c" };
            // List list = Arrays.asList(s); //得到的是一个固定大小的List。
            //
            // //list.add("d");
            // System.out.println(list);
    
            int[] arr = { 1, 2, 3 };
            List list = Arrays.asList(arr);
            System.out.println(list.size());
            
            System.out.println(list);
        }
    
    }
  • 相关阅读:
    kicad 基本操作
    RedHat centos中的上传下推脚本
    使用Node.js爬虫存储MySQL数据库
    解决vue和vue-template-compiler版本不同报错的问题
    Vue组件通信(父子组件通信)-学习笔记
    git 简单操作
    错误解决:redis.exceptions.ResponseError: unknown command 'SENTINEL'
    nginx做泛域名解析的域名的正则判断
    postman对字符串进行base64编码方法和变量的使用
    pymysql报错OperationalError: (2013, 'Lost connection to MySQL server during query')
  • 原文地址:https://www.cnblogs.com/spadd/p/4190847.html
Copyright © 2011-2022 走看看