Comment déclarer une ArrayList avec des valeurs? [dupliquer]

Cette question a déjà une réponse ici:

La déclaration ArrayList ou List en Java {[7] } a demandé et répondu comment déclarer un ArrayList vide mais comment déclarer un ArrayList avec des valeurs?

J'ai essayé ce qui suit, mais il renvoie une erreur de syntaxe:

import java.io.IOException;
import java.util.ArrayList;

public class test {
    public static void main(String[] args) throws IOException {
        ArrayList<String> x = new ArrayList<String>();
        x = ['xyz', 'abc'];
    }
}
165
demandé sur ישו אוהב אותך 2014-02-11 12:36:45

6 réponses

Vous pouvez créer un nouvel objet en utilisant le constructeur Collection:

List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));

Astuce: les documents contiennent des informations très utiles qui contiennent généralement la réponse que vous recherchez. Par exemple, voici les constructeurs de la classe ArrayList:


Java 8 solution à l'aide de Stream:

Stream.of("xyz", "abc").collect(Collectors.toList());
328
répondu Maroun 2017-09-29 07:42:46

Utilisation:

List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));

Si vous ne souhaitez pas ajouter de nouveaux éléments à la liste ultérieurement, vous pouvez également utiliser des tableaux (.asList renvoie une liste de taille fixe):

List<String> x = Arrays.asList("xyz", "abc");

Note: Vous pouvez également utiliser une importation statique si vous le souhaitez, alors cela ressemble à ceci:

import static java.util.Arrays.asList;

...

List<String> x = new ArrayList<>(asList("xyz", "abc"));

Ou

List<String> x = asList("xyz", "abc");
24
répondu Puce 2014-02-11 08:46:01

Vous pouvez faire comme ceci:

List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
23
répondu Vimal Bera 2014-02-11 08:39:54

La bibliothèque Guava contient des méthodes pratiques pour créer des listes et d'autres collections, ce qui rend cela beaucoup plus joli que d'utiliser les classes de bibliothèque standard.

Exemple:

ArrayList<String> list = newArrayList("a", "b", "c");

(ceci suppose import static com.google.common.collect.Lists.newArrayList;)

11
répondu Lii 2016-03-02 09:28:13

Essayez ceci!

List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));

C'est une bonne pratique de déclarer le ArrayList avec l'interface List Si vous n'avez pas à invoquer les méthodes spécifiques.

8
répondu Drogba 2014-02-11 08:45:43

Utilisez celui-ci:

ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));
6
répondu Rajendra arora 2014-02-11 08:40:54