鞏固java(六)----java中可變參數方法(非常實用哦)

來源:互聯網
上載者:User

標籤:

java提供了可變參數的方法,即方法的參數個數可以不確定,用"..."定義。

import java.util.ArrayList;import java.util.List;public class VariableParameter {//求若干個整型數中的最大值    public int getMax(int... items){       //定義可變參數items        int max = Integer.MIN_VALUE;       //次數為int能表示的最小值,值為-2147483648    for(int item : items){    max = item > max? item : max;    //取大值    }    return max;    }//返回比number大的數的個數    public int getLagerNum(int number,int... items){  //若除了可變長參數還有其它參數,可變長參數一定要放在最後        int sum = 0;    for(int item : items){    if(item > number){    sum++;    }    }    return sum;    }    public static void main(String[] args) {VariableParameter vp = new VariableParameter();System.out.println("最大值:"+vp.getMax());  //可以不寫參數System.out.println("最大值:"+vp.getMax(2,1,4,7,2,-1,3,3));  //可以在參數中直接寫入若干個參數System.out.println("最大值:"+vp.getMax(-1,4,5,0,1));        //可以在參數中直接寫入若干個參數        System.out.println("比number大的數的個數:"+vp.getLagerNum(9, 1,11,5,14,-1,9,21));  //9為number,後邊的是items        int a[] = new int[] {1,11,5,14,-1,9,21};        System.out.println("比number大的數的個數:"+vp.getLagerNum(9,a));     //items也可以用數組替代        }}
運行結果如下:

最大值:-2147483648最大值:7最大值:5比number大的數的個數:3比number大的數的個數:3

從上面代碼可以看出:

     1.在方法中定義可變參數後,我們可以像運算元組一樣操作該參數;

     2.如果該方法除了可變參數還有其它的參數,可變參數必須放到最後;

     3.調用使用了可變參數的方法時:

              a.可以不寫參數,即傳入空參;

              b.可以直接在裡邊寫入參數,參數間用逗號隔開;

              c.可以傳入一個數組;


繼續往下看:

public class VariableParameter {    public void comp(int... items){    System.out.println("1");    }        public void comp(int item1,int item2){    System.out.println("2");    }    public static void main(String[] args) {VariableParameter vp = new VariableParameter();vp.comp(1, 2);}}
運行結果:

2

由此可以看出:

         4.擁有可變參數的方法可以被重載,在被調用時,如果能匹配到參數定長的方法則優先調用參數定長的方法。


繼續:

public class VariableParameter {    public void comp(int... items){    System.out.println("1");    }        public void comp(int[] items){      //會報錯:Duplicate method comp(int[]) in type VariableParameter    System.out.println("2");    }    public static void main(String[] args) {}}

當試圖使用數組作為參數去實現重載時,會報錯,說明可變參數與數組衝突,但是:

public class VariableParameter {    public void comp(int[] items){      //會報錯:Duplicate method comp(int[]) in type VariableParameter    System.out.println("2");    }    public static void main(String[] args) {VariableParameter vp = new VariableParameter();vp.comp(1,2,3,4);    //The method comp(int[]) in the type VariableParameter is not applicable for the arguments (int, int, int, int)}}
如果定義一個參數為數組的方法,像調用可變參數的方法一樣調用它是會報錯,說明可變參數並不是一個數組,由此我們可以總結出:

 5:可變參數可以相容數組參數,但數組參數無法相容可變參數。








鞏固java(六)----java中可變參數方法(非常實用哦)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.