Java ArrayList: Ваше введение в динамические коллекции
Введение
Приветствую, будущие энтузиасты Java! Сегодня мы погружаемся в одно из самых полезных и универсальных инструментов Java: ArrayList. Представьте себе, что вы организуете вечеринку и не уверены, сколько друзей придет. Вы можете установить фиксированное количество стульев, но что если придет больше людей? Или еще хуже, что если половина стульев останется пустыми? Вот тут и приходит на помощь 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, у вас есть три варианта:
-
Создание пустого ArrayList:
ArrayList<String> friendsList = new ArrayList<>();
-
Создание ArrayList с начальной емкостью:
ArrayList<Integer> numbers = new ArrayList<>(20);
-
Создание 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() + " книг в списке чтения.");
}
}
Разберем это:
- Мы начинаем с создания ArrayList под названием
bookList
для хранения объектов String (заголовков книг). - Мы добавляем три книги с помощью метода
add()
. - Мы выводим исходный список с помощью
System.out.println()
. Здесь автоматически вызывается методtoString()
у ArrayList. - Мы добавляем "Гордость и предубеждение" в позицию 1 (вторую позицию) с помощью
add(int index, E element)
. - Мы удаляем "1984" с помощью метода
remove()
. - Мы используем
contains()
, чтобы проверить, есть ли "Великий Гэтсби" в нашем списке. - Наконец, мы используем
size()
, чтобы получить количество книг в нашем списке.
Вывод
Когда вы выполните эту программу, вы увидите что-то вроде этого:
Исходный список чтения: [Убить пересмешника, 1984, Великий Гэтсби]
После добавления новой книги: [Убить пересмешника, Гордость и предубеждение, 1984, Великий Гэтсби]
После удаления книги: [Убить пересмешника, Гордость и предубеждение, Великий Гэтсби]
Великий Гэтсби в вашем списке чтения!
У вас 3 книги в списке чтения.
Итак, у вас есть! Вы только что создали, манипулировали и исследовали ArrayList. Это как если бы вы организовали книжный клуб, добавляя новые названия, удаляя прочитанные и следя за своими чтениями.
Помните, ArrayList очень гибкий. Вы можете использовать его для управления списками любых вещей – чисел, пользовательских объектов или даже других ArrayList! Когда вы продолжите свое путешествие по Java, вы обнаружите, что ArrayList станет одним из ваших самых надежных инструментов в ящике инструментов программирования.
Так что продолжайте практиковаться, продолжайте программировать и, что самое важное, продолжайте наслаждаться Java! Кто знает? Возможно, ваш следующий большой проект будет использовать ArrayList, чтобы изменить мир – один динамический список за другим!
Credits: Image by storyset