Se a List
è l'obiettivo finale come dichiarato dall'OP, la risposta già accettata è ancora la più breve e la migliore. Tuttavia, desidero fornire alternative utilizzando Java 8 Streams , che ti daranno maggiori vantaggi se fa parte di una pipeline per ulteriori elaborazioni.
Inserendo il risultato della funzione .split (un array nativo) in un flusso e convertendolo in un elenco.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Se è importante che il risultato sia memorizzato come da ArrayList
titolo dall'OP, è possibile utilizzare un Collector
metodo diverso :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
O usando l'API di analisi RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Nota che potresti comunque considerare di lasciare la list
variabile digitata come List<String>
anziché ArrayList<String>
. L'interfaccia generica per List
sembra ancora abbastanza simile ArrayList
all'implementazione.
Di per sé, questi esempi di codice non sembrano aggiungere molto (tranne una maggiore digitazione), ma se hai intenzione di fare di più, come esemplifica questa risposta sulla conversione di una stringa in un elenco di lunghi , l'API di streaming è davvero potente consentendo per organizzare le operazioni una dopo l'altra.
Per completezza, sai.