Si a List
est l'objectif final comme l'OP l'a indiqué, alors la réponse déjà acceptée est toujours la plus courte et la meilleure. Cependant, je veux fournir des alternatives utilisant Java 8 Streams , qui vous donneront plus d'avantages si elles font partie d'un pipeline pour un traitement ultérieur.
En encapsulant le résultat de la fonction .split (un tableau natif) dans un flux, puis en le convertissant en liste.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
S'il est important que le résultat soit stocké en tant ArrayList
que selon le titre de l'OP, vous pouvez utiliser une Collector
méthode différente :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Ou en utilisant l'API d'analyse de RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Notez que vous pouvez toujours envisager de laisser la list
variable tapée comme List<String>
au lieu de ArrayList<String>
. L'interface générique de List
semble toujours assez similaire à laArrayList
implémentation.
En eux-mêmes, ces exemples de code ne semblent pas en ajouter beaucoup (sauf plus de frappe), mais si vous prévoyez d'en faire plus, comme cette réponse sur la conversion d'une chaîne en une liste de Longs montre , l'API de streaming est vraiment puissante en permettant pour canaliser vos opérations les unes après les autres.
Pour le bien, vous savez, l'exhaustivité.