Comment déclarer une ArrayList avec des valeurs? [dupliquer]
Cette question a déjà une réponse ici:
- initialisation D'une ArrayList sur une ligne 30 réponses
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'];
}
}
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
:
-
Construit une liste vide avec une capacité initiale de dix.
-
ArrayList(Collection<? extends E> c)
(*)Construit un liste contenant les éléments de la collection spécifiée, dans l'ordre dans lequel ils sont renvoyés par l'itérateur de la collection.
-
ArrayList(int initialCapacity)
Construit une liste vide avec la capacité initiale spécifiée.
Java 8 solution à l'aide de Stream
:
Stream.of("xyz", "abc").collect(Collectors.toList());
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");
Vous pouvez faire comme ceci:
List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
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;
)
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.
Utilisez celui-ci:
ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));