Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Мастерство Java ArrayList: операции, методы и лучшие практики

Класс ArrayList в Java

Откройте для себя всю мощь Java ArrayList: создавайте, манипулируйте и итерируйте с понятными реальными примерами.

Класс ArrayList, часть Java Collections Framework, реализует интерфейс List и предлагает структуру данных динамического массива. В отличие от статических массивов, ArrayList автоматически регулирует свою емкость при добавлении или удалении элементов, делая его динамическим массивом.

Мастерство Java ArrayList: операции, методы и лучшие практики

ArrayList vs. Array

Традиционные массивы требуют фиксированного размера при объявлении, что ограничивает гибкость. ArrayList преодолевает это ограничение, изменяя размер по требованию, обеспечивая эффективную обработку динамических данных.


Создание ArrayList

Импортируйте класс перед использованием:

import java.util.ArrayList;

Инстанцируйте с желаемым типом элемента:

// Тип Integer ArrayList ArrayList<Integer> intList = new ArrayList<>(); // Тип String ArrayList ArrayList<String> strList = new ArrayList<>();

Примечание: Используйте классы-обертки (например, Integer для int), потому что дженерики не поддерживают примитивные типы.


Пример: Создание ArrayList

import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("Python"); languages.add("Swift"); System.out.println("ArrayList: " + languages); } }

Вывод:

ArrayList: [Java, Python, Swift]

Базовые операции с ArrayList

Основные операции включают добавление, доступ, изменение и удаление элементов. Ниже приведены лаконичные фрагменты кода для каждой.


1. Добавление элементов

Добавление одного элемента в конец:

ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("C"); languages.add("Python"); System.out.println("ArrayList: " + languages);

Вывод:

ArrayList: [Java, C, Python]

Вставка по конкретному индексу:

languages.add(1, "JavaScript"); languages.add(3, "C++");

Добавление всех элементов из коллекции:

import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { HashSet<String> vowels = new HashSet<>(); vowels.add("a"); vowels.add("e"); vowels.add("i"); ArrayList<String> alphabets = new ArrayList<>(); alphabets.addAll(vowels); System.out.println("ArrayList: " + alphabets); } }

Вывод:

ArrayList: [a, e, i]

2. Доступ к элементам

Получение по индексу:

ArrayList<String> animals = new ArrayList<>(); animals.add("Cat"); animals.add("Dog"); animals.add("Cow"); String str = animals.get(1); System.out.print("Element at index 1: " + str);

Вывод:

Element at index 1: Dog

При необходимости итерируйте с Iterator.


3. Изменение элементов

Замена существующего элемента:

ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("Kotlin"); languages.add("C++"); languages.set(2, "JavaScript"); System.out.println("Modified ArrayList: " + languages);

Вывод:

Modified ArrayList: [Java, Kotlin, JavaScript]

4. Удаление элементов

По индексу:

ArrayList<String> animals = new ArrayList<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); String removed = animals.remove(2); System.out.println("Updated ArrayList: " + animals); System.out.println("Removed Element: " + removed);

Вывод:

Updated ArrayList: [Dog, Cat] Removed Element: Horse

Очистить все элементы с clear() или удалить диапазон с removeAll().


Часто используемые методы ArrayList

Помимо базовых CRUD операций, следующие методы часто используются:

МетодОписание
size()Возвращает количество элементов.
sort()Сортирует список.
clone()Создает поверхностную копию.
contains()Проверяет наличие элемента.
ensureCapacity()Предварительно выделяет пространство.
isEmpty()Проверяет, пуст ли список.
indexOf()Находит индекс первого вхождения.

Для полного списка обратитесь к официальному ArrayList API.


Итерация с for-each

ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); for (String animal : animals) { System.out.print(animal + ", "); }

Вывод:

Cow, Cat, Dog, 

Часто задаваемые вопросы

Какая разница между Java ArrayList и LinkedList?

ArrayListLinkedList
Реализует List интерфейсРеализует List, Queue и Deque
Единый непрерывный блок памятиУзлы со ссылками next/prev
Произвольный доступ O(1)Последовательный доступ O(n)
Динамически изменяет размерДинамически изменяет размер

Как преобразовать ArrayList в массив?

String[] arr = new String[languages.size()]; languages.toArray(arr);

Как преобразовать массив в ArrayList?

ArrayList<String> list = new ArrayList<>(Arrays.asList(arr));

Как создать и инициализировать ArrayList в одну строку?

ArrayList<String> list = new ArrayList<>(Arrays.asList("Java", "Python", "C"));

Как преобразовать ArrayList в String?

String str = languages.toString();

Как создать ArrayList, используя интерфейс List?

List<String> list = new ArrayList<>();

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Статические вложенные классы в Java: использование, отличия и примеры
  4. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Понимание Java Vector: использование, особенности и сравнение с ArrayList
  8. Освоение алгоритмов Java Collections: сортировка, перемешивание и многое другое
  9. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  10. Освоение Java Generics: создание переиспользуемого, типобезопасного кода