- Java ArrayList
- Example
- Add Items
- Example
- Access an Item
- Example
- Change an Item
- Example
- Remove an Item
- Example
- Example
- ArrayList Size
- Example
- Loop Through an ArrayList
- Example
- Example
- Other Types
- Example
- Sort an ArrayList
- Example
- Example
- ArrayList в Java
- Что хранит ArrayList?
- Конструкторы ArrayList
- Методы ArrayList
- Ссылки на дополнительное чтение
Java ArrayList
The ArrayList class is a resizable array, which can be found in the java.util package.
The difference between a built-in array and an ArrayList in Java, is that the size of an array cannot be modified (if you want to add or remove elements to/from an array, you have to create a new one). While elements can be added and removed from an ArrayList whenever you want. The syntax is also slightly different:
Example
Create an ArrayList object called cars that will store strings:
import java.util.ArrayList; // import the ArrayList class ArrayList cars = new ArrayList(); // Create an ArrayList object
If you don’t know what a package is, read our Java Packages Tutorial.
Add Items
The ArrayList class has many useful methods. For example, to add elements to the ArrayList , use the add() method:
Example
import java.util.ArrayList; public class Main < public static void main(String[] args) < ArrayListcars = new ArrayList(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); System.out.println(cars); > >
Access an Item
To access an element in the ArrayList , use the get() method and refer to the index number:
Example
Remember: Array indexes start with 0: [0] is the first element. [1] is the second element, etc.
Change an Item
To modify an element, use the set() method and refer to the index number:
Example
Remove an Item
To remove an element, use the remove() method and refer to the index number:
Example
To remove all the elements in the ArrayList , use the clear() method:
Example
ArrayList Size
To find out how many elements an ArrayList have, use the size method:
Example
Loop Through an ArrayList
Loop through the elements of an ArrayList with a for loop, and use the size() method to specify how many times the loop should run:
Example
public class Main < public static void main(String[] args) < ArrayListcars = new ArrayList(); 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)); >> >
You can also loop through an ArrayList with the for-each loop:
Example
public class Main < public static void main(String[] args) < ArrayListcars = new ArrayList(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); for (String i : cars) < System.out.println(i); >> >
Other Types
Elements in an ArrayList are actually objects. In the examples above, we created elements (objects) of type «String». Remember that a String in Java is an object (not a primitive type). To use other types, such as int, you must specify an equivalent wrapper class: Integer . For other primitive types, use: Boolean for boolean, Character for char, Double for double, etc:
Example
Create an ArrayList to store numbers (add elements of type Integer ):
import java.util.ArrayList; public class Main < public static void main(String[] args) < ArrayListmyNumbers = new ArrayList(); myNumbers.add(10); myNumbers.add(15); myNumbers.add(20); myNumbers.add(25); for (int i : myNumbers) < System.out.println(i); >> >
Sort an ArrayList
Another useful class in the java.util package is the Collections class, which include the sort() method for sorting lists alphabetically or numerically:
Example
Sort an ArrayList of Strings:
import java.util.ArrayList; import java.util.Collections; // Import the Collections class public class Main < public static void main(String[] args) < ArrayListcars = new ArrayList(); 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); >> >
Example
Sort an ArrayList of Integers:
import java.util.ArrayList; import java.util.Collections; // Import the Collections class public class Main < public static void main(String[] args) < ArrayListmyNumbers = new ArrayList(); 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); >> >
ArrayList в Java
ArrayList — реализация изменяемого массива интерфейса List, часть Collection Framework, который отвечает за список (или динамический массив), расположенный в пакете java.utils. Этот класс реализует все необязательные операции со списком и предоставляет методы управления размером массива, который используется для хранения списка. В основе ArrayList лежит идея динамического массива. А именно, возможность добавлять и удалять элементы, при этом будет увеличиваться или уменьшаться по мере необходимости.
Что хранит ArrayList?
Только ссылочные типы, любые объекты, включая сторонние классы. Строки, потоки вывода, другие коллекции. Для хранения примитивных типов данных используются классы-обертки.
Конструкторы ArrayList
ArrayList list = new ArrayList<>();
ArrayList list2 = new ArrayList<>(list);
ArrayList list2 = new ArrayList<>(10000);
Методы ArrayList
Ниже представлены основные методы ArrayList.
ArrayList list = new ArrayList<>(); list.add("Hello");
ArrayList secondList = new ArrayList<>(); secondList.addAll(list); System.out.println("Первое добавление: " + secondList); secondList.addAll(1, list); System.out.println("Второе добавление в середину: " + secondList);
Первое добавление: [Amigo, Hello] Второе добавление в середину: [Amigo, Amigo, Hello, Hello]
ArrayList copyOfSecondList = (ArrayList) secondList.clone(); secondList.clear(); System.out.println(copyOfSecondList);
System.out.println(copyOfSecondList.contains("Hello")); System.out.println(copyOfSecondList.contains("Check"));
// Первый способ for(int i = 0; i < secondList.size(); i++) < System.out.println(secondList.get(i)); >И цикл for-each: // Второй способ for(String s : secondList)
В классе ArrayList есть метод для обработки каждого элемента, который называется также, forEach. В качестве аргумента передается реализация интерфейса Consumer, в котором нужно переопределить метод accept():
secondList.forEach(new Consumer() < @Override public void accept(String s) < System.out.println(s); >>);
Метод accept принимает в качестве аргумента очередной элемент того типа, который хранит в себе ArrayList. Пример для Integer:
ArrayList integerList = new ArrayList<>(); integerList.forEach(new Consumer() < @Override public void accept(Integer integer) < System.out.println(integer); >>);
String[] array = new String[secondList.size()]; secondList.toArray(array); for(int i = 0; i
Ссылки на дополнительное чтение
- Подробная статья о динамических массивах, а точнее — об ArrayList и LinkedList , которые выполняют их роль в языке Java.
- Статья об удалении элементов из списка ArrayList.
- Лекция о работе с ArrayList в схемах и картинках.