2016-04-22 119 views
3

我有一個java程序的方法,將持續收到不同數量的int值。發送ints的最佳方式是什麼?發送方法的動態數量變量的最佳方式是什麼?

+1

你嘗試過什麼?只需使用參數調用方法... methodName(1,2,3,4,5,6,7,8) – billjamesdev

+0

我想要一個動態數量的參數 – localplutonium

+0

你說你有一個方法需要動態長度參數集。 ..問你怎麼稱呼它。動態參數可以用任意數量的參數調用它,所以有一次你可以用1,2,3,4來調用它,而另一次你可以用3,5,2,1,43,5,3來調用它,32。 – billjamesdev

回答

3

名爲varargs(或任意數量的參數)的構造可以幫助您。

method(int... ints) { ... } 

然後,可變參數將被編譯器轉換爲int[]


好的,如何調用這些方法?

method(1, 2, 3); 
method(new int[]{1, 2, 3}); 

關於這個問題的評論:

method(Arrays.stream(yourStringArray).mapToInt(Integer::parseInt).toArray()); 

您可將String[]int[]先,然後傳遞結果給method

+0

你會認爲這種方法比發送數組更好嗎?我最初有一個字符串數組,其中包含整數,這些整數即時發送給方法。 – localplutonium

+0

使用可變參數非常完美,因爲您可以使用逗號將其傳遞給數組或許多參數。這是你的選擇。 – 4castle

+0

'Arrays.stream(s).mapToInt(Integer :: parseInt).toArray()'並通過'int []' – Andrew

1

喜歡的東西下面你可以做到,利用點符號爲方法聲明與多個參數

public TestClass 
{ 
    public void process(int... variables) 
    { 
    // process your variables, 
    // Iterate through variables 
    } 
} 

另外請參閱本,Java multiple arguments dot notation - Varargs

+0

謝謝,這叫做什麼?是「...」運營商嗎? – localplutonium

相關問題