Якщо а List
- це кінцева мета, як заявлено в ОП, то вже прийнята відповідь все одно є найкоротшою та найкращою. Однак я хочу надати альтернативи за допомогою Java 8 Streams , що дасть вам більше користі, якщо воно буде частиною конвеєра для подальшої обробки.
Обернувши результат функції .split (власний масив) у потік, а потім перетворившись у список.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Якщо важливо, щоб результат зберігався у ArrayList
відповідності до назви з ОП, ви можете використовувати інший Collector
метод:
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Або за допомогою api для розбору RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Зауважте, що ви все ще можете залишити list
змінну введеною як List<String>
замість ArrayList<String>
. Універсальний інтерфейс List
все ще виглядає досить схожим наArrayList
реалізацію.
Самі по собі ці приклади коду, здається, не додають багато (за винятком більше набору тексту), але якщо ви плануєте робити більше, як-от ця відповідь про перетворення рядка в список довгих , API потокового потоку є дуже потужним, дозволяючи щоб конвеювати свої операції одна за одною.
Заради, знаєте, повноти.