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