1. 程式人生 > >Java:可變引數列表

Java:可變引數列表

知識總結:


package imooc.method;

public class ArgsDemo {

	//求和
	public void sum(int...n){
		int sum=0;
		for(int i:n)
		{
			sum+=i;
		}
		System.out.println("sum="+sum);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArgsDemo ad=new ArgsDemo();
        ad.sum(1);//累加和
        ad.sum(1,2);//3
        ad.sum(1,3,4);//8
	}

}

可變引數的查詢問題:

可變引數列表必須寫在引數的最後一個,陣列也可以做微可變引數列表的引數!

package imooc.method;

public class ArgsDemo {
	
	//查詢
	public void search(int n,int...a)//可變引數列表只能寫在最後一個引數
	{
		boolean flag=false;
		for(int a1:a){
			if(a1==n){
				flag=true;
			}
		}
		
		if(flag){
		System.out.println("找到了 "+n);
		}else
		{
			System.out.println("沒找到 "+n);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArgsDemo ad1=new ArgsDemo();
        ad1.search(1,1,2,3,4,5,6,7);//除了第一個數都是後面都是可變引數列表的值
        ad1.search(0,2,3,2,3,4,5,6,7);
        
        //可以將陣列傳遞給可變引數列表
        int[] a={1,2,3,4,5};
        ad1.search(3,a);
        
	}

}

陣列向可變引數列表傳值是可以相容的,是允許的!但是,可變引數列表項陣列傳值是不允許的!

package imooc.method;

public class ArgsDemo {
	
	//查詢
	public void search(int n,int...a)//可變引數列表只能寫在最後一個引數
	{
		boolean flag=false;
		for(int a1:a){
			if(a1==n){
				flag=true;
			}
		}
		
		if(flag){
		System.out.println("找到了 "+n);
		}else
		{
			System.out.println("沒找到 "+n);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArgsDemo ad1=new ArgsDemo();
        ad1.search(1,1,2,3,4,5,6,7);//除了第一個數都是後面都是可變引數列表的值
        ad1.search(0,2,3,2,3,4,5,6,7);
        
        //可以將陣列傳遞給可變引數列表
        int[] a={1,2,3,4,5};
        ad1.search(3,a);
        
	}

}


可變引數列表作為方法引數的過載問題:

注意:可變引數列表方法是最後系統訪問的,也就是說在同時存在兩個方法過載的情況下,應該先呼叫不可變引數的方法!

文件註釋:/**+回車

可以用@標記程式的版本,作者等!