ArrayList в Java: введение для начинающих [2022]

Опубликовано: 2022-11-22

Массив — это широко распространенная и необходимая структура данных в каждом языке программирования с одним недостатком — его размер фиксирован. Давайте посмотрим, как в этом может помочь ArrayList в Java.

Массив может быть двух типов: статический массив или динамический массив. Массив не может быть динамически увеличен в таких языках программирования, как Java. Вместо этого размер массива объявляется во время инициализации массива. Но во многих случаях это может привести ко многим проблемам. Для решения этой проблемы в Java используются ArrayLists. Размер массива автоматически увеличивается, когда элемент помещается в список ArrayList.

В этой статье вы узнаете об ArrayLists в Java. Вы поймете основную разницу между Array и ArrayList, а также узнаете о различных типах ArrayList и о том, как их использовать.

Массив против ArrayList

Основное различие между Array и ArrayList заключается в том, что размер Array является статическим, а размер ArrayList может быть динамическим. Поскольку массив фиксирован, время перебора массива занимает меньше времени, чем динамический массив.

Между ними также есть еще несколько отличий.

  • Статический массив может быть одномерным или многомерным, но ArrayList может быть только одномерным.
  • Массив — это примитивная структура данных, доступная в Java. Но ArrayList является частью API Collection Framework в Java. Он построен поверх массивов.
  • Вы можете объявлять массивы с примитивными типами данных. Примитивные типы данных нельзя использовать в ArrayList. Если вы хотите использовать примитивный тип данных, вам нужно будет использовать соответствующий класс-оболочку типа данных.

Типы списков массивов в Java

ArrayLists могут быть любого типа. Но вам нужно будет передать соответствующий класс-оболочку, потому что вы не можете передавать примитивные типы данных в ArrayList.

Вы можете добавить простые типы данных, такие как целочисленные или строковые типы, передав классы-оболочки, такие как Integer или String .

Вы также можете передавать сложные типы, такие как ArrayLists или ArrayLists, хэш-карты и т. д.

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

 import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32

В приведенном выше примере кода создается ArrayList типа User . Вы узнаете больше о методах, используемых в приведенном ниже примере.

Создание ArrayList в Java

Вы уже поняли основы ArrayList в Java. Теперь давайте взглянем на синтаксис ArrayList, а затем посмотрим, как его можно использовать в коде Java.

 ArrayList<Type> listName = new ArrayList<>();

В приведенном выше фрагменте показан синтаксис определения ArrayList. Type определяет тип ArrayList. Например, если вы хотите объявить ArrayList целочисленных типов данных, вы можете передать <Integer> . Обратите внимание, что вы не можете передать int , так как это примитивный тип данных.

Вам также потребуется импортировать java.util.ArrayList , чтобы использовать ArrayList в ваших программах. Вот базовый пример программы, объявляющей ArrayList:

 import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []

В приведенном выше коде объявлен ArrayList с именем rainbow типа String .

Для работы с ArrayList доступно несколько методов. Давайте рассмотрим несколько методов.

Метод add

Класс ArrayList предоставляет различные методы для выполнения таких операций, как добавление или удаление элементов, получение значений, установка значения в определенной позиции, очистка списка ArrayList и т. д.

Первый метод, который мы увидим, это метод add .

Метод add используется для добавления одного элемента в список ArrayList . Синтаксис для add показан ниже.

 arrayList.add(int i, Element)

Давайте теперь разберемся с синтаксисом. Первый параметр i — это необязательный параметр, представляющий позицию индекса, в которую нужно добавить элемент. Второй параметр Element — это элемент, который вы хотите добавить. Давайте теперь посмотрим на пример.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]

rainbow.add("Violet") добавляет элемент в конец ArrayList. А rainbow.add(0, "Red") добавляет элемент Red в индексную позицию 0 ArrayList. Метод add() возвращает true , когда элемент успешно вставлен.

Метод get

Метод get используется для получения значения из указанной позиции из списка ArrayList.

 arrayList.get(int i);

i , показанный в приведенном выше синтаксисе, является индексной позицией. Например, если вы хотите получить элемент из позиции 1 в индексе, напишите arrayList.get(1) .

 rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet

Приведенный выше код вернет Violet из rainbow ArrayList.

Метод set

Метод set используется для замены значения элемента. Например, если вы хотите заменить значение элемента в позиции индекса 0 , вы пишете rainbow.set(0, "Purple") , предполагая, что у вас есть ArrayList с именем rainbow .

Синтаксис метода set следующий:

 arrayList.set(int i, Element);

Где i — позиция индекса, а Element — значение нового элемента.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]

В приведенном выше примере мы добавляем два значения в ArrayList с именем rainbow . Сначала добавляется элемент Violet , затем в позицию 0 ArrayList добавляется элемент Red . На данный момент полный ArrayList выглядит так: [Red, Violet] .

Теперь элемент в позиции индекса 1 заменяется значением Purple с помощью метода set . После замены значения ArrayList будет выглядеть так: [Red, Purple] .

Метод remove

Метод remove ArrayList используется для удаления значения из списка ArrayList. Вы можете либо передать значение, либо позицию индекса значения, которое хотите удалить. Синтаксис метода remove показан ниже:

 arrayList.remove(Object value); // or arrayList.remove(int i);

Давайте возьмем пример для лучшего понимания метода. Предположим, что у вас есть ArrayList с именем rainbow со следующими значениями [Violet, Red, Green] . Теперь, если вы хотите удалить Red из списка ArrayList, вы можете написать rainbow.remove("Red"); . Вызов этого метода в rainbow ArrayList удалит из него элемент Red .

 // rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]

Вы также можете передать позицию индекса, чтобы удалить элемент в позиции индекса.

 //rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]

clear метод

Как следует из названия, метод clear удаляет все элементы из списка ArrayList. Синтаксис прост и не требует никаких параметров.

 arraylist.clear()

Давайте рассмотрим пример,

 rainbow.clear(); System.out.println(rainbow); Output: []

Метод clear не возвращает никакого значения. Вместо этого он очищает значение данного ArrayList.

Метод size

Метод size возвращает размер данного ArrayList. Этот метод также не принимает никаких параметров. Синтаксис показан ниже.

 arrayList.size();

Здесь arrayList — это имя списка ArrayList. Давайте разберемся с методом size на примере.

 ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3

Этот метод возвращает значение размера ArrayList. В приведенном выше примере rainbow ArrayList состоит из трех значений, поэтому метод size возвращает 3.

Вывод

В этой статье обсуждалось, что такое ArrayList и чем он отличается от массива. Мы также увидели, как ArrayList может быть объявлен и использован с использованием различных методов, доступных для класса ArrayList.

Если вы хотите глубже погрузиться в изучение Java, ознакомьтесь с этими онлайн-курсами по Java.