List
является интерфейсом, подобным Set
, и имеет ArrayList
и LinkedList
как реализации общего назначения .
Мы можем создать список как:
List<String> arrayList = new ArrayList<>();
List<String> linkedList = new LinkedList<>();
Мы также можем создать список фиксированного размера как:
List<String> list = Arrays.asList("A", "B", "C");
Мы почти всегда будем использовать ArrayList
вместо реализации LinkedList
:
LinkedList
использует много места для объектов и плохо работает, когда у нас много элементов.
- Любая индексированная операция в
LinkedList
требует времени O (n) по сравнению с O (1) в ArrayList
.
- Проверьте эту ссылку для получения дополнительной информации.
Список, созданный Arrays.asList
выше, не может быть изменен структурно, но его элементы все еще могут быть изменены.
Java 8
Согласно doc , метод Collections.unmodifiableList
возвращает неизменяемое представление указанного списка. Мы можем получить это как:
Collections.unmodifiableList(Arrays.asList("A", "B", "C"));
Java 9
Если мы используем Java 9 , тогда:
List<String> list = List.of("A", "B");
Java 10
Если мы находимся на Java 10, тогда метод Collectors.unmodifiableList
вернет экземпляр действительно неизменяемого списка, представленного в Java 9. Проверьте этот ответ для получения дополнительной информации о разнице в Collections.unmodifiableList
против Collectors.unmodifiableList
in Java 10 .