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);
    }

}
时间: 2025-01-04 09:14:19

JDK5.0新特性-可变参数的相关文章

Day07 jdk5.0新特性&Junit&反射

day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装MyEclipse 先安装了JDK ? MyEclipse介绍 ? MyEclipse是Eclipse的一个插件: MyEclipse是需要花钱的: MyEclipse官网不在欢迎中国人登录: ? MyEclipse使用 ? 1 创建项目 选择工作空间: 工作空间路径不能有空格和中文: 工作空间以班名

day07 MyEclipse 安装 jdk5.0 新特性

1.myeclipse的安装和使用 * eclipse:是一个免费的开发工具    * myeclipse:是一个收费的插件,破解myeclipse,        ** 安装目录的要求: 不能有中文和空格        ** 安装完成之后,选择一个工作空间 ,这个工作空间不能有中文和空格    * 破解myeclipse        ** 运行run.bat文件,但是运行之前,必须要安装jdk,通过配置环境变量 * myeclipse的使用        * 创建一个工程          

Java JDK5.0新特性

JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, collection, map) 1> 格式 增强for循环括号里写两个参数 第一个是声明一个变量 第二个就是需要迭代的容器 for( 元素类型 变量名 : Collection集合 & 数组 ) { ... } 2> 增强for循环和传统for循环的区别 a. 增强for循环在使用时 必须要

jdk新特性——可变参数

public class array2{ public static void main(String[] args) { sayHello("beijing","xian"); } private static void sayHello(String ... args) { for (int i = 0; i < args.length; i++) System.out.println("hello," + args[i]+"

JDK5新特性--可变参数

1.可变参数的引入 package cn; /**  * 可变参数  */ public class ChangeParameterDemo { public static void main(String[] args) { //2个数求和 int a = 10; int b = 20; int result = sum(a,b); System.out.println("result:"+result); int c = 30; result = sum(a,b,c); Syste

JDK5.0新特性

JDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效.清晰,安全的代码. 这些新特性主要有:1.静态导入2.自动装箱/拆箱3.增强for循环4.可变参数5.枚举6.泛型7.元数据 1.静态导入静态导入用于简化程序对静态属性和方法的调用 语法:Import static 包名.类名.静态属性|静态方法|*例如: import static java.lang.System.out import static java.lang.Math.* 2.自动装箱/拆箱自动装箱

[Java5新特性]可变参数

什么是可变参数 Java基础内容中,关于函数具有一种特性:重载,如果我们要完成多个数字想加的需求,可以按照以下代码完成: public class Demo { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { int sum1 = new Demo().a

Java新特性--可变参数

可变参数: 1.在传递参数时就可以不受参数个数的限制,全部将参数以数组的形式保存下来. 2.可变参数的定义格式:返回值类型  方法名称(类型...参数名称){},注意:...位于变量类型和变量名之间 3.可参变数的定义必须放在参数列表的后面. 为什么可变参数的定义必须放在参数列表的后面呢? 在没有可变参数这一特性之前,Java是将接受到的参数类型传递给一个数组,用数组的形式,在方法中进行遍历,需要几个元素就添加几个元素(public static void fun(int a[]){}).后来有

JDK5.0新特性-泛型

泛型(重点) 什么是泛型? 对数据类型进行一个限定. 应用最多的地方是集合. 为什么要使用泛型? 1.提高我们程序安全性. 2.将运行阶段的问题在编译阶段解决. 3.不用进行类型强制转换 ----------------------------------------------- 我们学习泛型的目的:会使用集合上定义的泛型. 1.集合上泛型的基本使用. //Collection<E> //List<E> //Set<E> //它们的作用是限定集合中元素的类型. 我们可