2016-04-11 10 views
0

私はパラメータとしてvarargの文字列を持つ必要があるコンストラクタを持っています。 私はこれらの文字列を分離してArrayListに追加する必要があります。その部分は私のメソッドを実行します。ここでメソッドにパラメータとしてvarargを渡すには?

はコードです:

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

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

メソッドへのパラメータとしてコンストラクタからこの可変引数を渡す方法は?

答えて

0

ではなく、

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

は、その後、あなたのString(複数可)を取得するためにanswersにアクセスすることができListとアクセスにString(複数可)を追加します。

+0

varargのすべての要素をリストに追加したくないので、いくつかのチェックを最初に行う必要があります。たとえば、いくつかの同じ文字列があるかどうかを確認する必要があります。 –

+0

そして 'String'を繰り返して、それぞれの条件を満たしていればそれを' List'に追加します。 –

+0

ええ、それは素晴らしい:) –

3

varargは、Text(),Text("a")またはText("a", "b")のように呼び出せる便利な構文です。
この方法では、本質的にはString[]です。
リストとして必要な場合は、Arrays.asList(str)としてください。ちょうどあなたがしたい場合は、単にstrアレイ全体、またはSet以上にわたって、各ループを使用、要素を反復し、個々のチェックを行うには、中間Set
answers.addAll(new HashSet<>(Arrays.asList(str)));などを使用して、あなたのanswersリストにすべてが、重複を追加するには
重複を排除します。

関連する問題