Java ArrayList
Оновлено: 22.05.2023
Java ArrayList
Клас ArrayList - це масив зі змінним розміром, який можна знайти в пакеті java.util.
Різниця між вбудованим масивом і ArrayList в Java полягає в тому, що розмір масиву не може бути змінений (якщо ви хочете додати або видалити елементи до/з масиву, вам доведеться створити новий масив). В той час як елементи можна додавати і видаляти з ArrayList, коли завгодно. Синтаксис також дещо відрізняється:
Створіть об'єкт ArrayList з назвою cars, який буде зберігати рядки:
ArrayList
import java.util.ArrayList; // import the ArrayList class
ArrayList<String> cars = new ArrayList<String>(); // Create an ArrayList object
Додати елементи
Клас ArrayList має багато корисних методів. Наприклад, для додавання елементів до ArrayList використовується метод add():
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
Доступ до елемента
Щоб отримати доступ до елементу в ArrayList, використовуйте метод get() і зверніться до його індексу:
cars.get(0);
Змінити елемент
Щоб змінити елемент, використовуйте метод set() і зверніться до його індексу:
cars.set(0, "Opel");
Видалити елемент
Щоб видалити елемент, використовуйте метод remove() і зверніться до його індексного номера:
cars.remove(0);
Щоб видалити всі елементи в ArrayList, використовуйте метод clear():
cars.clear();
ArrayList Size
Щоб дізнатися, скільки елементів має ArrayList, використовуйте метод size:
cars.size();
Цикл по списку масивів
Пройдіться по елементах списку ArrayList за допомогою циклу for і використовуйте метод size(), щоб вказати, скільки разів повинен виконуватися цикл:
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (int i = 0; i < cars.size(); i++) {
System.out.println(cars.get(i));
}
}
}
Ви також можете перебирати список ArrayList за допомогою циклу for-each:
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (String i : cars) {
System.out.println(i);
}
}
}
Інші типи
Елементи в списку ArrayList є фактично об'єктами. У наведених вище прикладах ми створювали елементи (об'єкти) типу String. Пам'ятайте, що String в Java - це об'єкт (а не примітивний тип). Для використання інших типів, наприклад, int, необхідно вказати еквівалентний клас-обгортку: Integer. Для інших примітивних типів використовуйте Boolean для boolean, Character для char, Double для double тощо:
Створити масив ArrayList для зберігання чисел (додати елементи типу Integer):
ArrayList
Integer
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);
for (int i : myNumbers) {
System.out.println(i);
}
}
}
Сортування списку ArrayList
Ще одним корисним класом у пакеті java.util є клас Collections, який містить метод sort() для сортування списків в алфавітному або числовому порядку:
Відсортувати список рядків ArrayList:
import java.util.ArrayList;
import java.util.Collections; // Import the Collections class
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
Collections.sort(cars); // Sort cars
for (String i : cars) {
System.out.println(i);
}
}
}
Відсортувати список цілих чисел ArrayList:
import java.util.ArrayList;
import java.util.Collections; // Import the Collections class
public class Main {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(33);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(34);
myNumbers.add(8);
myNumbers.add(12);
Collections.sort(myNumbers); // Sort myNumbers
for (int i : myNumbers) {
System.out.println(i);
}
}
}