English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы изучим класс Java ArrayList. Мы будем изучать различные операции и методы ArrayList с помощью примеров.
Класс ArrayList является реализацией интерфейса List, который позволяет нам создавать массивы, размер которых можно изменять.
В Java нам нужно сначала объявить размер массива, чтобы мы могли использовать его. После объявления размера массива его трудно изменить.
Чтобы решить эту проблему, мы можем использовать класс ArrayList. Класс ArrayList, существующий в пакете java.util, позволяет нам создавать массивы, размер которых можно изменять.
В отличие от массивов, когда мы добавляем или удаляем элементы в массивный список (объект класса ArrayList), он может автоматически调整 свой объем. Поэтому массивные списки также называют динамическими массивами.
Это метод, который мы можем использовать для создания массивов списков в Java:
ArrayList<Type> arrayList = new ArrayList<>();
Здесь тип указывает на тип массива списка. Например,
// Создание списка целых чисел ArrayList<Integer> arrayList = new ArrayList<>(); // Создание списка строк ArrayList<String> arrayList = new ArrayList<>();
В вышеуказанном примере программы мы используем Integer и String. Здесь Integer является соответствующим обертывающим классом для типа int.
Обертывающие классы - это классы, обертывающие原始 данные типов. Например, класс Integer обертывает тип int, класс Float обертывает тип Float и т.д.
注意:Мы не можем создавать массивы списков для原始 данных типов (например, int, float, char и т.д.). Вместо этого我们必须 использовать соответствующие обертывающие классы.
Для строк, String это класс, у него нет обертки. Поэтому мы используем String так, как есть.
Мы также можем использовать интерфейс List для создания ArrayList. Это потому, что класс ArrayList реализует интерфейс List.
List<String> list = new ArrayList<>();
ArrayList предоставляет различные методы, которые позволяют нам выполнять операции со списком массивов.
1. Использование метода add()
Чтобы добавить одиночный элемент в список массивов, мы используем метод add(). Например:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Добавить элемент animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); } }
результат вывода
ArrayList: [Собака, Кот, Конь]
2. Использование индексного номера
Мы также можем использовать индекс для добавления элементов в список массивов. Например:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Добавить элемент animals.add(0, "Dog"); animals.add(1, "Cat"); animals.add(2, "Horse"); System.out.println("ArrayList: " + animals); } }
результат вывода
ArrayList: [Собака, Кот, Конь]
3. Добавить элементы одного списка массивов в другой список массивов
Чтобы добавить все элементы списка массивов в новый список массивов, пожалуйста, используйте метод addAll(). Например:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> mammals = new ArrayList<>(); mammals.add("Dog"); mammals.add("Cat"); mammals.add("Horse"); System.out.println("Млекопитающие: " + mammals); ArrayList<String> animals = new ArrayList<>(); animals.add("Crocodile"); // Добавить все элементы mammals в animals animals.addAll(mammals); System.out.println("Животные: " + animals); } }
результат вывода
Млекопитающие: [Собака, Кот, Лошадь] Животные: [Крокодил, Собака, Кот, Лошадь]
В отличие от массивов, мы не можем напрямую инициализировать список массивов. Но мы можем использовать метод asList() класса Arrays для достижения аналогичного эффекта.
Для использования метода asList()我们必须 сначала импортировать пакет java.util.Arrays.
Например:
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //Создание списка массивов ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog")); System.out.println("ArrayList: " + animals); //Доступ к элементу массивного списка String element = animals.get(1); System.out.println("Доступ к элементу: " + element); } }
результат вывода
ArrayList: [Cat, Cow, Dog] Доступ к элементу: Cow
В上面的 примере обратите внимание на следующие выражения:
new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
В этом примере мы сначала создаем массив из 3 элементов: "Cat", "Cow", и "Dog". Затем метод asList() используется для преобразования массива в массивный список.
1. Использование метода get()
Чтобы случайным образом доступа к элементам массивного списка, мы используем метод get(). Например:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); //Получение элемента из массивного списка String str = animals.get(0); System.out.print("Элемент на индексе 0: " + str); } }
результат вывода
ArrayList: [Dog, Horse, Cat] Элемент на индексе 0: Dog
2. Использование метода iterator()
Чтобы упорядоченно доступа к элементам массивного списка, мы используем метод iterator(). Мы должны импортировать пакет java.util.Iterator, чтобы использовать этот метод. Например:
import java.util.ArrayList; import java.util.Iterator; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); animals.add("Zebra"); //Создание объекта Iterator Iterator<String> iterate = animals.iterator(); System.out.print("ArrayList: "); //Использование методов Iterator для доступа к элементам while(iterate.hasNext()){ System.out.print(iterate.next()); System.out.print(", "); } } }
результат вывода
ArrayList: Dog, Cat, Horse, Зебра,
Внимание:
hasNext() - возвращает true, если в массивном списке есть следующий элемент.
next() - возвращение следующего элемента массивного списка
Чтобы изменить элементы массивного списка, мы можем использовать метод set(). Например:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //Изменение элементов массивного списка animals.set(2, "Зебра"); System.out.println("Измененная ArrayList: " + animals); } }
результат вывода
ArrayList: [Собака, Кот, Конь] Измененный ArrayList: [Dog, Cat, Zebra]
1. Использование метода remove()
Чтобы удалить элемент из списка массивов, мы можем использовать метод remove(). Например,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("Начальный ArrayList: " + animals); //Удаление элемента по индексу 2 String str = animals.remove(2); System.out.println("Конечный ArrayList: " + animals); System.out.println("Удаление элемента: " + str); } }
результат вывода
Начальный ArrayList: [Dog, Cat, Horse] Конечный ArrayList: [Dog, Cat] Удаление элемента: Horse
2. Использование метода removeAll()
Чтобы удалить все элементы из списка массивов, мы используем метод removeAll(). Например,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //Добавление элементов в ArrayList animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("Начальный ArrayList: " + animals); //Удаление всех элементов animals.removeAll(animals); System.out.println("Конечный ArrayList: " + animals); } }
результат вывода
Начальный ArrayList: [Dog, Cat, Horse] Конечный ArrayList: []
3. Использование метода clear()
Мы также можем использовать метод clear() для удаления всех элементов из списка массивов. Например,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("Initial ArrayList: " + animals); //Удаление всех элементов animals.clear(); System.out.println("Final ArrayList: " + animals); } }
результат вывода
Начальный ArrayList: [Dog, Cat, Horse] Конечный ArrayList: []
注意:Метод clear() более эффективен, чем метод removeAll()
1. Использование цикла for
import java.util.ArrayList; class Main { public static void main(String[] args) { //Создание списка массивов ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //Использование цикла for System.out.println("Посещение всех элементов: "); for(int i = 0; i < animals.size(); i++) { System.out.print(animals.get(i)); System.out.print(", "); } } }
результат вывода
ArrayList: [Cow, Cat, Dog] Адрес всех элементов: Cow, Cat, Dog,
2. Использование цикла forEach
import java.util.ArrayList; class Main { public static void main(String[] args) { //Создание списка массивов ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //Использование цикла forEach System.out.println("Посещение всех элементов: "); for(String animal : animals) { System.out.print(animal); System.out.print(", "); } } }
результат вывода
ArrayList: [Cow, Cat, Dog] Адрес всех элементов: Cow, Cat, Dog,
В двух примерах мы использовали цикл для доступа к каждому элементу списка массивов.
Чтобы получить размер списка массивов, мы используем метод size(). Например:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в arrayList animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); // Получение размера arrayList System.out.println("Размер arrayList: " + animals.size()); } }
результат вывода
ArrayList: [Dog, Horse, Cat] Размер arrayList: 3
Для сортировки элементов списка массивов мы используем метод sort() класса Collections. Для использования его我们必须 сначала импортировать пакет java.util.Collections.
По умолчанию сортировка выполняется в порядке алфавита или чисел. Например:
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Horse"); animals.add("Zebra"); animals.add("Dog"); animals.add("Cat"); System.out.println("Неотсортированный ArrayList: " + animals); // Сортировка списка массивов Collections.sort(animals); System.out.println("Отсортированный ArrayList: " + animals); } }
результат вывода
Неотсортированный ArrayList: [Horse, Zebra, Dog, Cat] Отсортированный ArrayList: [Cat, Dog, Horse, Zebra]
Для получения дополнительной информации о сортировке списка массивов обратитесь к Java ArrayList sort.
В Java мы можем использовать метод toArray() для преобразования списка массивов в массив. Например:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // Добавление элемента в список массивов animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); // Создание нового массива типа String String[] arr = new String[animals.size()]; //Преобразование ArrayList в массив animals.toArray(arr); System.out.print("Массив: "); for(String item: arr) { System.out.print(item + ", "); } } }
результат вывода
ArrayList: [Собака, Кот, Конь] Массив: Dog, Cat, Horse,
Мы также можем преобразовать массив в список массивов. Для этого мы можем использовать метод asList() класса Arrays.
Чтобы использовать asList(), нам нужно сначала импортировать пакет java.util.Arrays. Например:
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //Создание массива строк String[] arr = {"Dog", "Cat", "Horse"}; System.out.print("Массив: "); //Печать массива for(String str: arr) { System.out.print(str); System.out.print(" "); } //Создание ArrayList из массива ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr)); System.out.println("\nArrayList: " + animals); } }
результат вывода
Массив: Dog, Cat, Horse ArrayList: [Собака, Кот, Конь]
В данном примере мы сначала создаем массив String arr.
Затем мы используем метод asList() для преобразования массива в список массивов.
Чтобы преобразовать список массивов в строку, можно использовать метод toString(). Например
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //В ArrayList добавляется элемент animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //Преобразование ArrayList в строку String str = animals.toString(); System.out.println("String: " + str); } }
результат вывода
ArrayList: [Собака, Кот, Конь] String: [Собака, Кот, Конь]
注意: toString() преобразует весь массив списка в единственный String.
метод | описание содержимого |
---|---|
clone() | создание нового массива списка с теми же элементами, размером и объемом. |
contains() | поиск указанного элемента в массиве списка и возвращение булева значения. |
ensureCapacity() | указать количество элементов, которые может содержать массив списка. |
isEmpty() | проверка того, является ли массив списка пустым. |
indexOf() | поиск указанного элемента в массиве списка и возвращение индекса этого элемента. |
trimToSize() | уменьшить размер массива списка до текущего размера. |