Самый распространенный метод добавления
Класс утилиты массивов
Класс инструментов коллекций
анонимный внутренний класс
JDK8 Stream
JDK9 List.of
ImmutableList
1. Обычный способ
List<String> list1 = new ArrayList<>();
list1.add("money");
list1.add("study");
list1.add("health");
System.out.println("Общий метод: " + list1); //Общий метод: [money, study, health]
Он используется чаще всего. Отсутствующие универсальные типы не требуют написания конкретных типов после JDK7. После улучшений типы будут выведены автоматически.
2.Класс утилиты массивов
//Сгенерированный список является неизменяемым
List<String> list2 = Arrays.asList("money", "study", "health");
System.out.println("Класс утилиты массивов: " + list2); //Класс утилиты массивов: [money, study, health]
//list2.add("happy"); //сообщаем об исключении java.lang.UnsupportedOperationException
asList — это статический метод Arrays, использующий статический импорт. Этот метод добавляет неизменяемый список, то есть такие операции, как добавление и удаление, выполнять нельзя, поэтому будьте осторожны.
Если вы хотите, чтобы он был переменной, вам нужно обернуть его ArrayList, чтобы получить переменную ArrayList.
List<String> list22 = new ArrayList<>(Arrays.asList("abc", "def","ghi"));
list22.add("xyz");
System.out.println("Класс утилиты массивов、ArrayListУпаковка: " + list22); //Класс утилиты массивов、Оболочка ArrayList: [abc, def, ghi, xyz]
3.Класс инструментов коллекций
//Сгенерированный список является неизменяемым
List<String> list3 = Collections.nCopies(3, "happy");
System.out.println("Класс инструментов коллекций: " + list3); //Класс инструментов коллекций: [happy, happy, happy]
//list3.add("happy"); //сообщаем об исключении java.lang.UnsupportedOperationException
nCopies — это статический метод Collections, добавляющий неизменяемый класс инструмента, который копирует элемент N раз.
Если вы хотите, чтобы он был переменной, вам нужно обернуть его ArrayList, чтобы получить переменную ArrayList.
List<String> list33 = new ArrayList<>(Collections.nCopies(3,"up"));
list33.add("down");
System.out.println("Класс инструментов коллекций、ArrayListУпаковка: " + list33); //Класс инструментов коллекций、Обертка ArrayList: [вверх, вверх, вверх, вниз]
4.анонимный внутренний класс
//переменная
List<String> list4 = new ArrayList<String>() {{
add("money");
add("study");
add("health");
}};
System.out.println("анонимный внутренний класс: " + list4); //анонимный внутренний класс: [money, study, health]
5.JDK8 Stream
//переменная
List<String> list5 = Stream.of("money", "study", "health").collect(Collectors.toList());
System.out.println("JDK8 Stream: " + list5); //JDK8 Stream: [money, study, health]
Поток — это новая концепция, представленная в JDK8. Он более мощный, чем коллекции, и его также можно преобразовать в коллекции.
6.JDK9 List.of
//Сгенерированный список является неизменяемым
List<String> list6 = List.of("money", "study", "health");
//JDK9 List.of: [money, study, health]
System.out.println("JDK9 List.of: " + list6);
7.ImmutableList
//Сгенерированный список является неизменяемым
List<String> list7 = ImmutableList.of("money", "study", "health");
//ImmutableList: [money, study, health]
System.out.println("ImmutableList: " + list7);