2016-04-11 19 views
0

Parametre olarak vararg dizeleri olması gereken bir kurgulayıcım var. Bu Dizeleri ayırmalı ve bunları parçamın yöntemini yapacak olan ArrayList'e eklemem gerekir.Vararg parametresi olarak nasıl parametre geçirilir?

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

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

Nasıl yönteme parametre olarak yapıcı bu vararg geçmek: İşte

kodudur?

cevap

0

ekle yerine,

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

Sonra almak için answers erişebilir List ve erişim String (ler) senin String (ler).

+0

Tüm öğeleri vararg listesinden listeye eklemek istemiyorum, önce bazı dizeler olup olmadığını görmek için bazı denetimler yapmam gerekiyor. –

+0

Ardından, "String" (ler) i tekrarlayın ve her birini test edin, eğer kriterlerinize uygunsa, onu 'List' 'e ekleyin. –

+0

Evet, harika çalışırdı :) –

3

vararg, Text(), Text("a") veya Text("a", "b") gibi arama yapabilmek için sadece bir kolaylık sözdizimi.
Bu yöntemde esas olarak bir String[].
Listeye ihtiyacınız varsa, sadece Arrays.asList(str) yapın.
İstersen sadece for-each str dizinin üzerinde döngü veya Set üzerinde kullanmak, sadece bir ara Setanswers.addAll(new HashSet<>(Arrays.asList(str)));
elemanları üzerinde ilerlerken ve bireysel kontroller yapmak için gibi kullanmak, sizin answers listeye yinelenenlerin ancak tüm eklemek için çiftleri ortadan kaldırmak için.

İlgili konular