Java ArrayList: Ваше введение в динамические коллекции

Введение

Приветствую, будущие энтузиасты Java! Сегодня мы погружаемся в одно из самых полезных и универсальных инструментов Java: ArrayList. Представьте себе, что вы организуете вечеринку и не уверены, сколько друзей придет. Вы можете установить фиксированное количество стульев, но что если придет больше людей? Или еще хуже, что если половина стульев останется пустыми? Вот тут и приходит на помощь ArrayList в мире программирования – это как магический список гостей, который увеличивается или уменьшается по мере необходимости!

Java - ArrayList

Объявление класса

Начнем с основ. В Java, ArrayList находится в пакете java.util. Чтобы использовать его, вам нужно импортировать его следующим образом:

import java.util.ArrayList;

Класс ArrayList объявлен следующим образом:

public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable

Не волнуйтесь, если это выглядит пугающе – мы разберем это шаг за шагом!

Что это значит?

  • <E>: Это параметр типа. Это означает, что ArrayList может хранить любой тип объекта. Это как говорить: "Этот ArrayList может хранить вещи, и мы указадим, какие именно вещи позже."
  • extends AbstractList<E>: ArrayList строится на основе другого класса, названного AbstractList.
  • implements List<E>, RandomAccess, Cloneable, Serializable: Это интерфейсы, которые реализует ArrayList, давая ему определенные возможности.

Конструкторы класса

Когда вы создаете ArrayList, у вас есть три варианта:

  1. Создание пустого ArrayList:

    ArrayList<String> friendsList = new ArrayList<>();
  2. Создание ArrayList с начальной емкостью:

    ArrayList<Integer> numbers = new ArrayList<>(20);
  3. Создание ArrayList из другой коллекции:

    ArrayList<Double> scores = new ArrayList<>(existingList);

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

Методы класса

ArrayList приходит с набором полезных методов. Давайте рассмотрим некоторые из самых распространенных:

Метод Описание
add(E element) Добавляет элемент в конец списка
add(int index, E element) Добавляет элемент в указанную позицию
get(int index) Возвращает элемент в указанной позиции
set(int index, E element) Заменяет элемент в указанной позиции
remove(int index) Удаляет элемент в указанной позиции
size() Возвращает количество элементов в списке
clear() Удаляет все элементы из списка
contains(Object o) Возвращает true, если список содержит указанный элемент

Эти методы похожи на различные трюки на вечеринке – добавление гостей, проверку их присутствия или просьбу к кому-то уйти (конечно, вежливо!).

Наследуемые методы

ArrayList также наследует методы от своих родительских классов и интерфейсов. Некоторые из них включают:

  • Из AbstractList: iterator(), listIterator()
  • Из AbstractCollection: toString(), isEmpty()
  • Из Object: clone(), equals(), hashCode()

Представьте себе, что это бонусные функции, которые приходят с вашим ArrayList!

Пример добавления и удаления элементов из ArrayList строк

Давайте применим наши знания на реальном примере. Мы создадим ArrayList для управления списком книг:

import java.util.ArrayList;

public class ReadingList {
public static void main(String[] args) {
// Создание ArrayList для хранения заголовков книг
ArrayList<String> bookList = new ArrayList<>();

// Добавление книг в список
bookList.add("Убить пересмешника");
bookList.add("1984");
bookList.add("Великий Гэтсби");

System.out.println("Исходный список чтения: " + bookList);

// Добавление книги в определенную позицию
bookList.add(1, "Гордость и предубеждение");

System.out.println("После добавления новой книги: " + bookList);

// Удаление книги
bookList.remove("1984");

System.out.println("После удаления книги: " + bookList);

// Проверка, есть ли книга в списке
String searchBook = "Великий Гэтсби";
if (bookList.contains(searchBook)) {
System.out.println(searchBook + " в вашем списке чтения!");
} else {
System.out.println(searchBook + " не в вашем списке чтения.");
}

// Получение размера списка
System.out.println("У вас " + bookList.size() + " книг в списке чтения.");
}
}

Разберем это:

  1. Мы начинаем с создания ArrayList под названием bookList для хранения объектов String (заголовков книг).
  2. Мы добавляем три книги с помощью метода add().
  3. Мы выводим исходный список с помощью System.out.println(). Здесь автоматически вызывается метод toString() у ArrayList.
  4. Мы добавляем "Гордость и предубеждение" в позицию 1 (вторую позицию) с помощью add(int index, E element).
  5. Мы удаляем "1984" с помощью метода remove().
  6. Мы используем contains(), чтобы проверить, есть ли "Великий Гэтсби" в нашем списке.
  7. Наконец, мы используем size(), чтобы получить количество книг в нашем списке.

Вывод

Когда вы выполните эту программу, вы увидите что-то вроде этого:

Исходный список чтения: [Убить пересмешника, 1984, Великий Гэтсби]
После добавления новой книги: [Убить пересмешника, Гордость и предубеждение, 1984, Великий Гэтсби]
После удаления книги: [Убить пересмешника, Гордость и предубеждение, Великий Гэтсби]
Великий Гэтсби в вашем списке чтения!
У вас 3 книги в списке чтения.

Итак, у вас есть! Вы только что создали, манипулировали и исследовали ArrayList. Это как если бы вы организовали книжный клуб, добавляя новые названия, удаляя прочитанные и следя за своими чтениями.

Помните, ArrayList очень гибкий. Вы можете использовать его для управления списками любых вещей – чисел, пользовательских объектов или даже других ArrayList! Когда вы продолжите свое путешествие по Java, вы обнаружите, что ArrayList станет одним из ваших самых надежных инструментов в ящике инструментов программирования.

Так что продолжайте практиковаться, продолжайте программировать и, что самое важное, продолжайте наслаждаться Java! Кто знает? Возможно, ваш следующий большой проект будет использовать ArrayList, чтобы изменить мир – один динамический список за другим!

Credits: Image by storyset