2016-04-11 127 views
0

我有一個構造函數將需要可變參數的字符串。 我需要分開這些字符串,並將它們添加到ArrayList中,該部分將執行我的方法。如何將vararg作爲參數傳遞給方法?

下面是代碼:

private ArrayList<String> answers = new ArrayList<>(); 
private int index; 

public Text(String ... str) 
{ 
    separateVararg(); // How to pass vararg in here 
} 

如何從構造這個可變參數作爲參數傳遞給方法?

回答

0

添加String(縣)的List並訪問相反,

public Text(String... str) 
{ 
    answers.addAll(Arrays.asList(str)); 
} 

然後你就可以訪問answers讓你String(S)。

+0

我不想從可變參數列表中添加所有元素,我需要先做一些檢查,比如看看裏面是否有相同的字符串。 –

+0

然後迭代'String'並且測試每一個,如果它符合你的標準將它添加到'List'。 –

+0

是的,它會工作很好:) –

3

vararg只是一種便利的語法,可以稱之爲Text(),Text("a")Text("a", "b")
該方法實質上是一個String[]
所以,如果你需要它作爲列表,只需做Arrays.asList(str)
所有,但重複添加到您的answers列表,只需使用一箇中間Setanswers.addAll(new HashSet<>(Arrays.asList(str)));
遍歷元素和做個人支票,如果你只想使用for-each循環在str陣列,或通過Set消除重複。

相關問題