2012-08-16 10 views

risposta

81

Arrays.asList () farebbe il trucco qui.

String[] words = {"ace", "boom", "crew", "dog", "eon"}; 

List<String> wordList = Arrays.asList(words); 

Per la conversione da impostare, si può fare come sotto

Set<T> mySet = new HashSet<T>(Arrays.asList(words)); 
7

Il modo più semplice sarebbe:

String[] myArray = ...; 
List<String> strs = Arrays.asList(myArray); 

utilizzando il pratico Arrays classe di utilità. Si noti, che si può anche fare

List<String> strs = Arrays.asList("a", "b", "c"); 
2
java.util.Arrays.asList(new String[]{"a", "b"}) 
1

Il modo più semplice è attraverso

Arrays.asList(stringArray); 
2

E 'un vecchio codice, in ogni caso, provare:

import java.util.Arrays; 
import java.util.List; 
import java.util.ArrayList; 
public class StringArrayTest 
{ 
    public static void main(String[] args) 
    { 
     String[] words = {"word1", "word2", "word3", "word4", "word5"}; 

     List<String> wordList = Arrays.asList(words); 

     for (String e : wordList) 
     { 
     System.out.println(e); 
     } 
    } 
} 
0
String[] w = {"a", "b", "c", "d", "e"}; 

List<String> wL = Arrays.asList(w); 
2

Se davvero si vuole utilizzare un set:

String[] strArray = {"foo", "foo", "bar"}; 
Set<String> mySet = new HashSet<String>(Arrays.asList(strArray)); 
System.out.println(mySet); 

uscita:

[foo, bar] 
7

Collections.addAll fornisce la più breve ricevimento (una linea)

Avere

String[] array = {"foo", "bar", "baz"}; 
Set<String> set = new HashSet<>(); 

si può fare, come di seguito

Collections.addAll(set, array); 
1

Anche se questo non è strettamente una risposta a questa domanda penso è utile

Gli array e gli insiemi possono essere convertiti in Iterable che può evitare la necessità di eseguire una conversione complessa.

Per esempio ho scritto questo per unire liste/array di roba in una stringa con un separatore

public static <T> String join(Iterable<T> collection, String delimiter) { 
    Iterator<T> iterator = collection.iterator(); 
    if (!iterator.hasNext()) 
     return ""; 

    StringBuilder builder = new StringBuilder(); 

    T thisVal = iterator.next(); 
    builder.append(thisVal == null? "": thisVal.toString()); 

    while (iterator.hasNext()) { 
     thisVal = iterator.next(); 
     builder.append(delimiter); 
     builder.append(thisVal == null? "": thisVal.toString()); 
    } 

    return builder.toString(); 
} 

Utilizzando iterabile significa che è possibile alimentare in un ArrayList o aswell simile come usarlo con un parametro String... senza dover convertire entrambi.

Problemi correlati