web-dev-qa-db-fra.com

Java: Comment convertir String [] en liste ou en ensemble

Comment convertir String [] (Array) en Collection, comme ArrayList ou HashSet?

56
Mark

Arrays.asList () ferait l'affaire ici.

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

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

Pour convertir en Set, vous pouvez faire comme ci-dessous

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

Le moyen le plus simple serait:

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

en utilisant la classe pratique Arrays . Notez que vous pouvez même faire

List<String> strs = Arrays.asList("a", "b", "c");
9
Dirk

Collections.addAll fournit le reçu le plus court (une ligne)

Ayant

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

Vous pouvez faire comme ci-dessous

Collections.addAll(set, array); 
8
dax-nb

Si vous voulez vraiment utiliser un ensemble:

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

sortie:

[foo, bar]
2
Reimeus

Bien que cela ne soit pas strictement une réponse à cette question, je pense que c'est utile.

Les tableaux et les collections peuvent être convertis en Iterable, ce qui vous évite d'avoir à effectuer une conversion difficile.

Par exemple, j'ai écrit ceci pour joindre des listes/tableaux de choses dans une chaîne avec un séparateur

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();
}

Utiliser iterable signifie que vous pouvez soit introduire une ArrayList ou similaire, soit l’utiliser avec un String... paramètre sans avoir à convertir non plus.

2
JonnyRaa
Java.util.Arrays.asList(new String[]{"a", "b"})
2
Philippe Marschall

C'est un vieux code, essayez quand même:

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);
      }
    }
}
2
Adelmo Pereira

Le plus simple est par

Arrays.asList(stringArray);
1
Keppil
String[] w = {"a", "b", "c", "d", "e"};  

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