Se a List
é o objetivo final, como o OP afirmou, a resposta já aceita ainda é a mais curta e a melhor. No entanto, desejo fornecer alternativas usando o Java 8 Streams , que lhe trarão mais benefícios se fizer parte de um pipeline para processamento adicional.
Envolvendo o resultado da função .split (uma matriz nativa) em um fluxo e convertendo-o em uma lista.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Se for importante que o resultado seja armazenado conforme ArrayList
o título do OP, você pode usar um Collector
método diferente :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Ou usando a API de análise RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Observe que você ainda pode considerar deixar a list
variável digitada como em List<String>
vez de ArrayList<String>
. A interface genérica para List
ainda parece bastante semelhante à ArrayList
implementação.
Sozinhos, esses exemplos de código parecem não adicionar muito (exceto mais digitação), mas se você planeja fazer mais, como a resposta da conversão de uma String para uma lista de longos , a API de streaming é realmente poderosa ao permitir para canalizar suas operações uma após a outra.
Por uma questão de integridade, você sabe.