English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java List

Java Queue (очередь)

Java Map-коллекция

Java Set-коллекция

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

List (Список) Java

В этом руководстве мы будем изучать интерфейс List и его методы в Java.

В Java интерфейс List является упорядоченной коллекцией, которая позволяет нам хранить и обращаться к элементам по порядку. Он расширяет интерфейс коллекции.

Классы, реализующие List

Поскольку List является интерфейсом, из него нельзя создать объект.

Чтобы использовать функции интерфейса List, мы можем использовать следующие классы:

Эти классы определены и реализованы в рамке Collections и интерфейс List.

Как использовать List?

В Java необходимо импортировать пакет java.util.List, чтобы использовать List.

// Реализация ArrayList для List
List<String> list1 = new ArrayList<>();
// Реализация LinkedList для List
List<String> list2 = new LinkedList<>();

Здесь мы уже создали объекты classes ArrayList и LinkedList list1 и list2. Теперь эти объекты могут использовать функции интерфейса List.

Методы List

Интерфейс List включает все методы интерфейса Collection. Это потому, что Collection является суперсообщением List.

Интерфейс Collection также предоставляет некоторые常用的 методы интерфейса List:

  • add() - добавляет элемент в список

  • addAll() - добавляет все элементы одного списка в другой

  • get() - помогает случайному доступу к элементам списка

  • iterator() - возвращает объект迭代атора, который можно использовать для последовательного доступа к элементам списка

  • set() - изменяет элемент списка

  • remove() - удаляет один элемент из списка

  • removeAll() - удаляет все элементы из списка

  • clear() - удаляет все элементы из списка (более эффективен, чем removeAll())

  • size() - возвращает длину списка

  • toArray() - преобразует список в массив

  • contains() - возвращает true, если список содержит указанный элемент

Реализация интерфейса List

1. Реализация класса ArrayList

import java.util.List;
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // создание списка с использованием класса ArrayList
        List<Integer> numbers = new ArrayList<>();
        // добавление элемента в список
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Список: " + numbers);
        // доступ к элементу из списка
        int number = numbers.get(2);
        System.out.println("Доступ к элементу: " + number);
        // из списка удаляется элемент
        int removedNumber = numbers.remove(1);
        System.out.println("Удаление элемента: " + removedNumber);
    }
}

Результат вывода

List: [1, 2, 3]
Доступ к элементу: 3
Удаление элемента: 2

Для получения дополнительной информации о ArrayList, пожалуйста, обратитесь кArrayList Java.

2. Реализация класса LinkedList

import java.util.List;
import java.util.LinkedList;
class Main {
    public static void main(String[] args) {
        // создание списка с использованием класса LinkedList
        List<Integer> numbers = new LinkedList<>();
        // добавление элемента в список
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Список: " + numbers);
        // доступ к элементу из списка
        int number = numbers.get(2);
        System.out.println("Доступ к элементу: " + number);
        // использование метода indexOf()
        int index = numbers.indexOf(2);
        System.out.println("Элемент на позиции 3: " + index);
        // из списка удаляется элемент
        int removedNumber = numbers.remove(1);
        System.out.println("Удаление элемента: " + removedNumber);
    }
}

Результат вывода

List: [1, 2, 3]
Доступ к элементу: 3
Элемент на позиции 3: 1
Удаление элемента: 2

Для получения дополнительной информации о LinkedList, пожалуйста, посетитеJava LinkedList.

Java List и Set

Интерфейсы List и Set наследуют интерфейс Collection. Но между ними есть некоторые различия.

  • List может содержать повторяющиеся элементы. Но Set не может иметь повторяющихся элементов.

  • Элементы List хранятся в определенном порядке. Но элементы Set хранятся группами, как в математике, так и в集合ах.

Теперь мы знаем, что такое List, и в следующих уроках мы подробно рассмотрим реализацию классов ArrayList и LinkedList.