Интерфейс List в Java: обзор, реализации и ключевые методы
Интерфейс List в Java
Изучите интерфейс List в Java — его назначение, распространенные реализации, основные методы и отличия от Set.
В Java интерфейс List представляет упорядоченную, индекс-базированную коллекцию, поддерживающую дубликаты и произвольный доступ. Он расширяет Collection и является частью Collections Framework.
Ключевые реализации List
Поскольку List — интерфейс, вы инстанцируете конкретные классы для использования его функциональности:
- ArrayList — на базе динамического массива, обеспечивает быстрый произвольный доступ.
- LinkedList — реализован как двусвязный список, превосходен при вставках/удалениях.
- Vector — устаревший синхронизированный список, редко используется в современном коде.
- Stack — подкласс Vector, следующий семантике LIFO.

Эти классы определены в пакете java.util.
Использование List в коде
Сначала импортируйте java.util.List (и конкретный класс, который хотите использовать).
// Реализация ArrayList List<String> arrayList = new ArrayList<>(); // Реализация LinkedList List<String> linkedList = new LinkedList<>();
Переменные arrayList и linkedList теперь предоставляют все методы List.
Основные методы List
Все перечисленные ниже методы унаследованы от Collection и доступны в каждой реализации List.
add(E e)— добавить элемент в конец.addAll(Collection<? extends E> c)— массовое добавление.get(int index)— получить по индексу.iterator()— последовательный обход.set(int index, E element)— заменить элемент.remove(Object o)— удалить по значению.removeAll(Collection<? extends E> c)— массовое удаление.clear()— очистить список.size()— количество элементов.toArray()— преобразовать в массив.contains(Object o)— проверить наличие.
ArrayList на практике
import java.util.List; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); int third = numbers.get(2); System.out.println("Accessed Element: " + third); int removed = numbers.remove(1); System.out.println("Removed Element: " + removed); } }
Вывод:
List: [1, 2, 3] Accessed Element: 3 Removed Element: 2
Для глубокого понимания ArrayList обратитесь к официальной документации Oracle.
LinkedList на практике
import java.util.List; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { List<Integer> numbers = new LinkedList<>(); numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); int third = numbers.get(2); System.out.println("Accessed Element: " + third); int index = numbers.indexOf(2); System.out.println("Position of 2 is " + index); int removed = numbers.remove(1); System.out.println("Removed Element: " + removed); } }
Вывод:
List: [1, 2, 3] Accessed Element: 3 Position of 2 is 1 Removed Element: 2
Дополнительные детали о LinkedList доступны в Java Tutorials.
List vs. Set
Оба интерфейса расширяют Collection, но различаются в ключевых аспектах:
- Lists сохраняют порядок вставки и допускают дубликаты.
- Sets обеспечивают уникальность и обычно не имеют определенного порядка (если не используется
SortedSet).
Выбор между ними зависит от того, важны ли для вашего случая порядок и дубликаты.
Продолжайте изучение конкретных реализаций в следующих руководствах.
java
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Освоение алгоритмов Java Collections: сортировка, перемешивание и многое другое
- Освоение Java Autoboxing и Unboxing: практические примеры и лучшие практики
- Генерация случайных чисел в Java: Практическое руководство с Random и Math.random