Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Списки Java: Коллекции

List в java – это интерфейс, который предоставляет возможность поддерживать упорядоченную коллекцию. Он содержит основанные на индексах методы для вставки, обновления, удаления и поиска элементов. Он также может иметь повторяющиеся элементы.

ArrayList

Класс ArrayList – реализация интерфейса List. Представляет собой автоматически расширяемый массив. ArrayList может менять свой размер во время исполнения программы

// Создаем новый экземпляр ArrayList
List<String> list = new ArrayList<>();

System.out.println(list); // => []

// Добавляем элементы в список
list.add("1");
list.add(null);
list.add(null);
list.add("2");
list.add("3");
list.add("3");

System.out.println(list); //=> [1, null, null, 2, 3, 3]

list.remove(0);
System.out.println(list); // => [null, null, 2, 3, 3]

list.remove("3");
list.remove("4");
System.out.println(list); // => [null, null, 2, 3]

System.out.println(list.size()); // => 4

List<String> insertedList = new ArrayList<>();
insertedList.add("1");
insertedList.add("2");
insertedList.add("7");
insertedList.add("7");
System.out.println(insertedList); // => [1, 2, 7, 7]

list.addAll(2, insertedList);
System.out.println(list); // => [null, null, 1, 2, 7, 7, 2, 3]

System.out.println(list.indexOf("7")); // => 4
System.out.println(list.get(3)); // => 2
System.out.println(list.isEmpty()); // => false
System.out.println(list.contains("2")); // => true
System.out.println(list.contains("11")); // => false


for (String s: list) {
    System.out.println("element of list: " + s);
}

Вывод на экран:

element of list: null
element of list: null
element of list: 1
element of list: 2
element of list: 7
element of list: 7
element of list: 2
element of list: 3
// Создаем новую переменную с типом ArrayList
ArrayList<String> arrayList = (ArrayList<String>) list;
System.out.println(arrayList); // => [null, null, 1, 2, 7, 7, 2, 3]

LinkedList

Класс LinkedList — еще одна реализация интерфейса List. Представляет из себя двусвязный список, где каждый элемент структуры содержит ссылки на предыдущий и следующий элементы. По этим ссылкам можно переходить от одного элемента к другому.

// Создаем новый экземпляр двусвязного списка
List<Integer> list = new LinkedList<>();

// Добавляем/удаляем элементы
list.add(1);
list.add(2);
list.add(null);
list.add(3);
list.add(4);
list.remove(1);
list.add(null);

System.out.println(list); // => [1, null, 3, 4, null]

System.out.println(list.size()); // => 5
System.out.println(list.get(0)); // => 1
System.out.println(list.indexOf(3)); // => 2

LinkedList<Integer> linkedList = (LinkedList<Integer>) list;

// Получаем, но не удаляем первый элемент списка
System.out.println(linkedList.peek()); // => 1
System.out.println(list); // => [1, null, 3, 4, null]

// Получаем и удаляем первый элемент списка
System.out.println(linkedList.poll()); // => 1
System.out.println(linkedList); // => [null, 3, 4, null]

// Вставляем элемент в начало списка
linkedList.addFirst(3);
System.out.println(linkedList); // => [3, null, 3, 4, null]

for (Integer num: linkedList) {
    System.out.println("int: " + num);
}

Вывод на экран:

int: 3
int: null
int: 3
int: 4
int: null

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Java-разработчик
Профессия
с нуля
Разработка приложений на языке Java
2 февраля 10 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»