可变参数本质上是一个数组;可变参数只能处于参数列表的最后,所以一个方法最多只能有一个长度可变的参数。可变参数后不能再有参数。
package cn.itcast.demo2;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=10;
int b=30;
System.out.println(sum(a,b));
System.out.println(sum());
}
public static int sum(int...a)
{
int sum=0;
for(int i=0;i<a.length;i++)
{
sum+=a[i];
}
return sum;
}
public void demo(String s,int...t)
{
}
//可変参数示例Arrays.asList() 它的作用可以将数组转化成集合
@Test
public void demo()
{
String[] s={"a","b","c"};
List list=Arrays.asList(s);//得到的是一个固定大小的列表List
//数组変集合长度不能变,因为数组长度是固定的,这个集合是由数组转化成的
System.out.println(list);
System.out.println(list.size());//3
}
@Test
public void demo1()
{
int[] s={1,2,3};
List list=Arrays.asList(s);
System.out.println(list);
System.out.println(list.size());//1
}
}
为什么demo输出的是3,而demo2输出的是1呢?
将一个int[]转化为List集合使用Arrays.asList方法,得到的集合长度为1,集合中的元素是int[],因为集合中的元素是Object,而数组中的元素是int类型,不能直接装入到集合(没有进行装箱),这是就将数组对象作为集合对象。List