Создание и инициализация List, ArrayList или LinkedList в одну строку очень похожи на создание массива и его инициализацию сразу же при создании. Прежде чем перейти к примеру, следует сказать, что это также является популярным вопросом на технической части собеседования, так как имеет и свои недостатки. И так, как же создать и инициализировать ArrayList в одной строке.
Трюк в этой статье позволит вам создать и инициализировать ArrayList точно так же, как массив. Этот прием сохранит ваше времени при тестировании программы и ускорит её работу.
Создание и инициализация List в одну строку
Для начала нам потребуется метод Arrays.asList (). Он находится в пакете java.util.* и выступает в качестве связующего звена между массивом и списком в Java. С помощью этого метода мы сможем быстро создать список из массива, при этом создание и инициализация списка будет проходить в одну строку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package ua.com.prologistic.arraylistdemo; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ArrayListDemo{ public static void main(String args[]) { //Здесь происходит привычное создание и инициализация массива в одну строку String[] coolStringArray = new String[]{"Java" , "Scala" , "Groovy"}; System.out.println(" Array : " + Arrays.toString(coolStringArray)); //Теперь вручную создадим ArrayList с тремя элементам List<String> notSoCoolStringList = new ArrayList<String>(); notSoCoolStringList.add("Java"); notSoCoolStringList.add("Scala"); notSoCoolStringList.add("Groovy"); //На это нам потребовалось 4 строки System.err.println(" List : " + notSoCoolStringList); //Здесь происодит создание и инициализация List в одну строку List<String> coolStringList = Arrays.asList("Java", "Scala", "Groovy"); System.err.println(" List создан и инициализирован в одну строку : " + coolStringList); } } |
Результат выполнения программы:
1 2 3 4 |
// Результат выполнения: Array : [Java, Scala, Groovy] List : [Java, Scala, Groovy] List создан и инициализирован в одну строку : [Java, Scala, Groovy] |
Помните, что Arrays.asList() возвращает java.util.List, а не ArrayList или LinkedList. Еще стоит отметить, что список возвращен Arrays.asList () имеет фиксированную длину, которая не позволит вам добавить или удалить элемент. Add () и remove() метод бросит UnsupportedOperationException, если вы попытаетесь добавить или удалить элемент из списка.
Подробнее о других способах создать коллекции из массива читайте по ссылке.
как вариант создания нормального ArrayList, не readonly
List list = new ArrayList(Arrays.asList(«Java», «Scala», «Groovy»));