arraylist methods java tutorial with example programs
У цьому посібнику ми обговоримо такі методи Java ArrayList, як add, addAll, видалення, removeAll, розмір, містить, retainAll, Сортування, Зворот і т.д. з прикладами:
У попередньому навчальному посібнику ми досліджували структуру даних ArrayList та клас ArrayList, який передбачав цю структуру даних / колекцію на Java. Ми дізналися про створення, ініціалізацію тощо об’єктів ArrayList.
Окрім цих функцій, які допомагають нам визначити ArrayList, клас ArrayList у Java також забезпечує повноцінний API функцій, що складається з методів, які використовуються для маніпулювання об’єктами ArrayList.
=> Перевірте ВСІ підручники Java тут.
Ці методи дозволяють нам додавати, видаляти, шукати елементи в ArrayList, а також отримувати довжину / розмір елементів ArrayList тощо.
У цьому підручнику ми детально обговоримо ці методи на простих прикладах програмування.
Що ви дізнаєтесь:
- Методи ArrayList в Java
- ArrayList add
- ArrayList addAll
- ArrayList Додати до фронту
- ArrayList видалити
- ArrayList removeAll
- ArrayList removeRange
- Розмір списку масивів (довжина)
- ArrayList містить
- ArrayList get
- Набір ArrayList (Замінити елемент)
- ArrayList clear
- ArrayList isEmpty
- ArrayList indexOf
- ArrayList lastIndexOf
- ArrayList toArray
- Клон ArrayList
- Підсписок ArrayList
- ArrayList retainAll
- ArrayList Iterator
- ArrayList listIterator
- Додавання масиву до списку масивів у Java
- Сортувати ArrayList у Java
- Змінення списку масивів у Java
- Видалення дублікатів зі списку масивів у Java
- Перемішати (довільно) список масивів у Java
- Часті запитання
- Висновок
Методи ArrayList в Java
У наступній таблиці перелічені всі методи, які надаються класом ArrayList.
| Метод | Метод-прототип | Опис методу |
|---|---|---|
| Містить | boolean містить (Об'єкт o) | Перевіряє, чи містить список вказаний елемент „o”. Повертає true, якщо елемент присутній. |
| Додати | логічне додавання (E e) | Додає заданий елемент e до кінця списку. |
| void add (індекс int, елемент E) | Додає заданий елемент „елемент” у вказаній позиції „індекс”. | |
| AddAll | boolean addAll (Колекція c) | Додає всі елементи даної колекції c до кінця списку. |
| boolean addAll (індекс int, колекція c) | Додає всі елементи у даній колекції c у позиції, вказаній ‘індексом’ у списку. | |
| Ясно | void clear () | Очищає список, видаляючи зі списку всі елементи. |
| Клон | Клон об'єкта () | Робить неглибоку копію даного ArrayList. |
| provideCapacity | void secureCapacity (int minCapacity) | Збільшує ємність ArrayList, щоб переконатися, що він має minCapacity. |
| Отримати | E get (індекс int) | Повертає елемент у списку, присутній у позиції, зазначеній за допомогою 'index'. |
| indexOf | int indexOf (Об'єкт o) | Повертає індекс першого входження елемента o у списку. -1, якщо елемент o відсутній у списку. |
| пусто | логічний isEmpty () | Перевіряє, чи вказаний список порожній. |
| Ітератор | Ітератор ітератора () | Повертає ітератор для обходу елементів списку у належній послідовності. |
| lastIndexOf | int lastIndexOf (Об'єкт o) | Повертає індекс останнього входження зазначеного елемента o у списку. -1, якщо елемент відсутній у списку. |
| listIterator | ListIterator listIterator () | Повертає ітератор списку для обходу елементів даного списку. |
| ListIterator listIterator (індекс int) | Повертає ітератор списку, починаючи з зазначеної позиції ‘index’, щоб обходити елементи даного списку. | |
| видалити | E видалити (індекс int) | Видаляє елемент із «індексом» у списку ArrayList. |
| логічне видалення (Об'єкт o) | Видаляє перше входження елемента o зі списку. | |
| видалити все | boolean removeAll (Колекція c) | Видаляє зі списку всі елементи, які відповідають елементам даної колекції c. |
| removeRange | захищена порожнеча removeRange (int fromIndex, int toIndex) | Видаляє зі списку елементи, зазначені в заданому діапазоні, від Індексу (включно) до Індексу (ексклюзивно). |
| retainAll | boolean retainAll (Колекція c) | Зберігає ті елементи у списку, які відповідають елементам даної колекції c. |
| встановити | Набір E (індекс int, елемент E) | Встановлює значення елемента за заданим «індексом» до нового значення, заданого за допомогою «елемент». |
| розмір | розмір int () | Повертає загальну кількість елементів або довжину списку. |
| підсписок | Підсписок списку (int fromIndex, int toIndex) | Повертає підсписок між заданим діапазоном, від Індексу до Індексу для даного списку. |
| toArray | Об'єкт () toArray () | Перетворює даний список у масив. |
| T () до масиву (T () a) | Перетворює даний список у масив типу, заданого a. | |
| trimToSize | void trimToSize () | Обрізає ємність ArrayList до розміру або кількості елементів, присутніх у списку. |
Далі ми детально обговоримо кожен із цих методів з API функції ArrayList та подамо приклади програмування. Після обговорення всіх методів, перерахованих вище, ми також розглянемо деякі конкретні операції, які виконуються за допомогою ArrayLists, які не є частиною API функції ArrayList.
ArrayList add
Я
Прототип: логічне додавання (E e)
Параметри: e => Елемент, який потрібно додати до ArrayList.
Повернене значення: true => Елемент успішно додано.
Опис: Додає заданий елемент e до кінця списку.
II.
Прототип: void add (індекс int, елемент E)
Параметри:
index => Позиція, в якій слід додати елемент.
Element => Елемент, який потрібно додати до ArrayList.
Повернене значення: порожнеча
Опис: Додає даний елемент ‘element’ у вказаній позиції ‘index’, зміщуючи елемент у цій позиції та наступні елементи вправо.
Винятки: IndexOutOfBoundsException => Якщо вказаний індекс виходить за межі діапазону.
ArrayList addAll
Я
відкриття файлів jar у Windows 10
Прототип: boolean addAll (Колекція c)
Параметри: c => Колекція, елементи якої потрібно додати до ArrayList.
Повернене значення: true => Якщо операція змінила ArrayList.
Опис: Додає всі елементи даної колекції c до кінця списку. Результат операції невизначений, якщо колекція змінюється під час виконання операції.
Винятки: NullPointerException => Якщо дана колекція c є нульовою.
yl
Прототип: boolean addAll (індекс int, колекція c)
Параметри: index => Позиція, в яку слід додавати елементи в даній колекції.
Повернене значення: true => Якщо список змінився в результаті операції.
Опис: Додає всі елементи у даній колекції c у позиції, вказаній ‘індексом’ у списку. Елемент за вказаним індексом та наступні елементи зміщуються вправо. Результат операції невизначений, якщо додана колекція змінюється під час виконання операції.
Винятки: IndexOutOfBoundsException: якщо індекс, куди слід додати колекцію, виходить за межі
NullPointerException: якщо дана колекція c є нульовою.
Наступна програма Java демонструє використання методів add та addAll.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print the list System.out.println('Initial ArrayList:' + city_List); //add an element at index 1 using add method overload city_List.add(1, 'NYC'); //print the list System.out.println('
rrayList after adding element at index 1:' + city_List); //define a second list ArrayList more_Cities = new ArrayList(Arrays.asList('Pune', 'Hyderabad')); //use addAll method to add the list to ArrayList at index 4 city_List.addAll(4,more_Cities); //print the list System.out.println('
ArrayList after adding list at index 4:' + city_List); } } Вихід:
Початковий список масивів: (Делі, Мумбаї, Ченнаї, Колката)
rrayList після додавання елемента за індексом 1: (Делі, Нью-Йорк, Мумбаї, Ченнаї, Колката)
ArrayList після додавання списку за індексом 4: (Делі, Нью-Йорк, Мумбаї, Ченнаї, Пуна, Хайдерабад, Колката)

Вказана програма використовує обидві версії методу add для додавання елементів до списку. Він також додає колекцію до списку за вказаним індексом. Зверніть увагу на зміщення елементів праворуч від ArrayList, як видно з результату роботи програми.
ArrayList Додати до фронту
Як уже зазначалося, перша версія методу add додає елементи в кінець списку. Якщо ви хочете додати елементи на початку ArrayList, вам доведеться скористатися другою версією методу add. Цей метод додавання приймає індекс як параметр. Цей індекс - це позиція, в якій слід додати елемент.
Таким чином, щоб додати елемент на початку списку, потрібно вказати індекс як 0, що є початком списку.
Наступна програма додає елемент до передньої частини списку ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //define new ArrayList and initialize it ArrayList numList = new ArrayList(); numList.add(5); numList.add(7); numList.add(9); //print the ArrayList System.out.println('Initial ArrayList:'); System.out.println(numList); //use add method with index=0 to add elements to the beginning of the list numList.add(0, 3); numList.add(0, 1); System.out.println('ArrayList after adding elements at the beginning:'); //print ArrayList System.out.println(numList); } } Вихід:
Початковий ArrayList:
(5, 7, 9)
ArrayList після додавання елементів на початку:
(1, 3, 5, 7, 9)

ArrayList видалити
Я
Прототип: E видалити (індекс int)
Параметри: index => Позиція, в якій елемент повинен бути видалений із ArrayList.
Повернене значення: E => Елемент, який видаляється
Опис: Видаляє елемент за ‘індексом’ у ArrayList та переміщує наступні елементи ліворуч.
Винятки: IndexOutOfBoundsException => Вказаний індекс виходить за межі діапазону.
II.
Прототип: логічне видалення (Об'єкт o)
Параметри: o => Елемент, який потрібно вилучити з ArrayList.
Повернене значення: true => Якщо елемент присутній у списку.
Опис: Видаляє перше входження елемента o зі списку. Якщо елемент відсутній у списку, це не впливає на цю операцію. Після того як елемент буде видалено, наступні елементи зміщуються вліво.
ArrayList removeAll
Прототип: boolean removeAll (Колекція c)
Параметри: c => Колекція, елементи якої збігаються з елементами ArrayList і мають бути видалені.
Повернене значення: true => Якщо операція змінює ArrayList.
Опис: Видаляє зі списку всі елементи, які відповідають елементам даної колекції c. В результаті елементи, що залишилися, зміщуються ліворуч від списку.
Винятки: ClassCastException => Клас не такий, як у вказаної колекції, що означає, що клас несумісний.
NullPointerException => Якщо дана колекція c є нульовою; або якщо c має нульовий елемент, і це не дозволено колекцією.
ArrayList removeRange
Прототип: захищена порожнеча removeRange (int fromIndex, int toIndex)
Параметри: fromIndex => Індекс початкового елемента діапазону, який потрібно видалити.
toIndex => Індекс елемента після останнього елемента в діапазоні, який потрібно видалити.
Повернене значення: порожнеча
Опис: Видаляє зі списку елементи, зазначені в заданому діапазоні, від Індексу (включно) до Індексу (ексклюзивно). Ця операція скорочує довжину списку на (toIndex-fromIndex). Ця операція не має ефекту у випадку fromIndex = toIndex.
Винятки: IndexOutOfBoundsException => Якщо будь-який з індексів (fromIndex або toIndex) виходить за межі.
Давайте реалізуємо програму Java, щоб продемонструвати деякі з цих методів видалення, про які ми говорили вище.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(Arrays.asList('Delhi','Mumbai','Chennai', 'Kolkata', 'Pune', 'Hyderabad')); //print the list System.out.println('Initial ArrayList:' + city_List); //remove element at index 2 city_List.remove(2); //print the list System.out.println('
ArrayList after removing element at index 2:' + city_List); //remove the element 'Kolkata' city_List.remove('Kolkata'); //print the list System.out.println('
ArrayList after removing element -> Kolkata:' + city_List); //create new list ArrayList newCities=new ArrayList(Arrays.asList('Delhi','Hyderabad')); //call removeAll to remove elements contained in newCities list. city_List.removeAll(newCities); //print the list System.out.println('
ArrayList after call to removeAll:' + city_List); } }Вихід:
Початковий список масивів: (Делі, Мумбаї, Ченнаї, Колката, Пуна, Хайдарабад
ArrayList після видалення елемента за індексом 2: (Делі, Мумбаї, Колката, Пуна, Хайдерабад)
ArrayList після видалення елемента -> Колката: (Делі, Мумбаї, Пуна, Хайдерабад)
ArrayList після виклику removeAll: (Мумбаї, Пуна)

Розмір списку масивів (довжина)
Прототип: розмір int ()
Параметри: НІЛ
Повернене значення: int => Кількість елементів у ArrayList.
Опис: Повертає загальну кількість елементів або довжину ArrayList.
EnsureCapacity
Прототип: void secureCapacity (int minCapacity)
Параметри: minCapacity => Мінімальна ємність, бажана для ArrayList.
Повернене значення: порожнеча
Опис: Збільшує ємність ArrayList, щоб переконатися, що він має minCapacity.
trimToSize
Прототип: void trimToSize ()
Параметри: НІЛ
Повернене значення: порожнеча
Опис: Обрізає ємність ArrayList до розміру або кількості елементів, присутніх у списку.
Наведений нижче приклад програмування демонструє методи size (), secureCapacity () та trimToSize ().
import java.util.ArrayList; public class Main { public static void main(String () args) { //Create and initialize Arraylist ArrayList evenList=new ArrayList(5); System.out.println('Initial size: '+evenList.size()); evenList.add(2); evenList.add(4); evenList.add(6); evenList.add(8); evenList.add(10); //print the list and size System.out.println('Original List: ' + evenList); System.out.println('ArrayList Size after add operation: '+evenList.size()); //call ensureCapacity () with minimum capacity =10 evenList.ensureCapacity(10); //add two more elements evenList.add(12); evenList.add(14); //print the size again System.out.println('ArrayList Size after ensureCapacity() call and add operation: '+evenList.size()); //call trimToSize() evenList.trimToSize(); //print the size and the ArrayList System.out.println('ArrayList Size after trimToSize() operation: '+evenList.size()); System.out.println('ArrayList final: '); for(int num: evenList){ System.out.print(num + ' '); } } } Вихід:
Початковий розмір: 0
Оригінальний список: (2, 4, 6, 8, 10)
Розмір списку масивів після операції додавання: 5
Розмір списку масивів після виклику і додавання операції verifyCapacity (): 7
Розмір ArrayList після операції trimToSize (): 7
ArrayList final:
2 4 6 8 10 12 14

ArrayList містить
Прототип: boolean містить (Об'єкт o)
Параметри: o => Елемент, який перевіряється, якщо він присутній у ArrayList.
Повернене значення: true => Якщо ArrayList містить елемент o.
Опис: Перевіряє, чи містить список вказаний елемент „o”. Повертає true, якщо елемент присутній.
Ми використовуємо метод «містить» у наступній програмі.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call contains method to check if different strings are present in ArrayList System.out.println('ArrayList contains ('Red Green'): ' +colorsList.contains('Red Green')); System.out.println('ArrayList contains ('Blue'): ' +colorsList.contains('Blue')); System.out.println('ArrayList contains ('Yellow'): ' +colorsList.contains('Yellow')); System.out.println('ArrayList contains ('White'): ' +colorsList.contains('White')); } }Вихід:
ArrayList містить («Червоний зелений»): false
ArrayList містить («Синій»): true
ArrayList містить (‘Жовтий’): false
ArrayList містить («Білий»): true

Як показано у наведеному вище результаті, метод ‘contains’ перевіряє, чи присутній аргумент присутній у ArrayList і повертає true або false.
ArrayList get
Прототип: E get (індекс int)
Параметри: index => Індекс, при якому елемент слід отримати з ArrayList.
Повернене значення: E => Значення елемента за заданим індексом у ArrayList.
Опис: Повертає елемент у списку, присутній у позиції, зазначеній за допомогою 'index'.
Винятки: IndexOutOfBoundsException => Якщо індекс виходить за межі.
Набір ArrayList (Замінити елемент)
Прототип: Набір E (індекс int, елемент E)
Параметри: index => Індекс, за яким слід замінити елемент.
Елемент => Новий елемент, який слід встановити за вказаним індексом.
Повернене значення: E => Елемент, який замінюється заданою операцією.
Опис: Встановлює значення елемента за даним «індексом» до нового значення, заданого за допомогою «елемент».
Винятки: IndexOutOfBoundsException => Якщо індекс виходить за межі
Наведена нижче програма Java використовує метод get () і set () для отримання та заміни значень у ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call get () method to retrieve value at index 2 System.out.println('Entry at index 2 before call to set: ' + colorsList.get(2)); //replace the value at index 2 with new value colorsList.set(2,'Yellow'); //print the value at index 2 again System.out.println('Entry at index 2 after call to set: ' + colorsList.get(2)); } } Вихід:
Запис в індексі 2 перед викликом для встановлення: Синій
Запис в індексі 2 після дзвінка для встановлення: жовтий

ArrayList clear
Прототип: void clear ()
Параметри: НІЛ
Повернене значення: порожнеча
Опис: Очищає список, видаляючи зі списку всі елементи.
ArrayList isEmpty
Прототип: логічний isEmpty ()
Параметри: НІЛ
Повернене значення: true => якщо список порожній
Опис: Перевіряє, чи вказаний список порожній.
Функції Clear () та isEmpty () продемонстровані нижче.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //print the ArrayList System.out.println('The ArrayList: ' + colorsList); //call clear() nethod on ArrayList colorsList.clear(); //check if ArrayList is empty using isEmpty() method System.out.println('Is ArrayList empty after clear ()? :' + colorsList.isEmpty()); } }Вихід:
Список масивів: (Червоний, Зелений, Синій, Білий)
Чи є ArrayList порожнім після clear ()? : правда

ArrayList indexOf
Прототип: int indexOf (Об'єкт o)
Параметри: o => Елемент, індекс якого можна знайти в ArrayList.
Повернене значення: int => Індекс першого входження елемента у список.
Опис: Повертає індекс першого входження елемента o у списку. -1, якщо елемент o відсутній у списку.
ArrayList lastIndexOf
Прототип: int lastIndexOf (Об'єкт o)
Параметри: o => Елемент для пошуку.
Повернене значення: int => Індекс останнього входження елемента у список.
Опис: Повертає індекс останнього входження зазначеного елемента o у списку. -1, якщо елемент відсутній у списку.
Наведена нижче програма Java демонструє indexOf та lastIndexOf методи ArrayList.
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize intList ArrayList intList = new ArrayList(); intList.add(1); intList.add(1); intList.add(2); intList.add(3); intList.add(5); intList.add(3); intList.add(2); intList.add(1); intList.add(1); //print the ArrayList System.out.println('The ArrayList: ' + intList); //call indexOf() and lastIndexOf() methods to check the indices of specified elements System.out.println('indexOf(1) : ' + intList.indexOf(1)); System.out.println('lastIndexOf(1) : ' + intList.lastIndexOf(1)); System.out.println('indexOf(2) : ' + intList.indexOf(2)); System.out.println('lastIndexOf(2) : ' + intList.lastIndexOf(2)); System.out.println('indexOf(3) : ' + intList.indexOf(3)); System.out.println('lastIndexOf(3) : ' + intList.lastIndexOf(3)); System.out.println('indexOf(5) : ' + intList.indexOf(5)); System.out.println('lastIndexOf(5) : ' + intList.lastIndexOf(5)); } }Вихід:
Список масивів: (1, 1, 2, 3, 5, 3, 2, 1, 1)
indexOf (1): 0
lastIndexOf (1): 8
indexOf (2): 2
lastIndexOf (2): 6
indexOf (3): 3
lastIndexOf (3): 5
indexOf (5): 4
lastIndexOf (5): 4

ArrayList toArray
Прототип: Об'єкт () toArray ()
Параметри: НІЛ
Повернене значення: Об'єкт () => масив. Цей повернутий масив містить усі елементи списку у належній послідовності.
Опис: Перетворює даний список у масив.
Прототип: T () до масиву (T () a)
Параметри: a => Масив для зберігання елементів списку. Якщо розміру масиву недостатньо для елементів списку, для зберігання елементів створюється інший масив того самого типу, що і a.
Повернене значення: T () => Масив, що містить усі елементи списку.
Опис: Перетворює даний список у масив типу, заданого a.
яка різниця між qa та qc
Винятки: ArrayStoreException => Якщо існує невідповідність типу виконання масиву та типу виконання або супертипу його елементів.
NullPointerException => Даний масив має значення null
Наведена нижче програма Java демонструє метод toArray з ArrayList.
import java.util.*; public class Main { public static void main(String() args) { // define and initialize ArrayList ArrayList intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); // print ArrayList System.out.println('ArrayList: ' + intList); //declare array Integer myArray() = new Integer(intList.size()); //use toArray method to convert ArrayList to Array myArray = intList.toArray(myArray); //print the Array System.out.println('Array from ArrayList:' + Arrays.toString(myArray)); } }Вихід:
ArrayList: (10, 20, 30, 40, 50)
Масив із ArrayList: (10, 20, 30, 40, 50)

Клон ArrayList
Прототип: Клон об'єкта ()
Параметри: НІЛ
Повернене значення: Object => Клон екземпляра ArrayList.
Опис: Робить неглибоку копію даного ArrayList.
import java.util.ArrayList; public class Main { public static void main(String a()){ ArrayList fruitsList = new ArrayList(); //Adding elements to the ArrayList fruitsList.add('Apple'); fruitsList.add('Orange'); fruitsList.add('Melon'); fruitsList.add('Grapes'); System.out.println('Original ArrayList: '+fruitsList); ArrayList clone_list = (ArrayList)fruitsList.clone(); System.out.println('Cloned ArrayList: '+ clone_list); //add one elmeent & remove one element from original arraylist fruitsList.add('Mango'); fruitsList.remove('Orange'); //print original and cloned ArrayList again System.out.println('
Original ArrayList after add & remove:'+fruitsList); System.out.println('Cloned ArrayList after original changed:'+clone_list); } }Вихід:
Оригінальний список масивів: (яблуко, апельсин, диня, виноград)
Клонований список масивів: (яблуко, апельсин, диня, виноград)
Оригінальний список масивів після додавання та видалення: (яблуко, диня, виноград, манго)
Клонований список масивів після зміни оригіналу: (яблуко, апельсин, диня, виноград)

З наведеного вище виходу програми ви бачите, що клонований ArrayList є неглибокою копією вихідного ArrayList. Це означає, що коли оригінальний ArrayList змінено, ці зміни не відображаються в клонованому ArrayList, оскільки вони не мають спільного розташування пам’яті кожного елемента.
Для створення глибокої копії Array потрібно пройти оригінальний ArrayList і скопіювати кожен його елемент у цільовий ArrayList.
Підсписок ArrayList
Прототип: Підсписок списку (int fromIndex, int toIndex)
Параметри: fromIndex => Початковий індекс діапазону (включно)
toIndex => Кінцевий індекс діапазону (ексклюзивно)
Повернене значення: Список => Підсписок списку в заданому діапазоні.
Опис: Повертає підсписок між заданим діапазоном, від Індексу до індексу для даного списку. Зверніть увагу, що цей підсписок або подання списку в даному діапазоні підтримує всі операції, підтримувані списком. Подання не повертається, якщо fromIndex = toIndex.
Винятки: IndexOutOfBoundsException => Кинуто, коли toIndex виходить за межі діапазону.
IllegalArgumentException => Якщо fromIndex> toIndex, тобто індекси не працюють.
Побачимо приклад методу subList.
import java.util.ArrayList; import java.util.List; class Main{ public static void main(String a()){ //create and initialize the ArrayList ArrayList intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); intList.add(30); intList.add(35); intList.add(40); intList.add(45); intList.add(50); //print the ArrayList System.out.println('Original ArrayList: '+intList); //create a sublist for the given ArrayList ArrayList sub_ArrayList = new ArrayList(intList.subList(2, 6)); //print the sublist System.out.println('Sublist of given ArrayList: '+sub_ArrayList); } }Вихід:
Оригінальний список масивів: (5, 10, 15, 20, 25, 30, 35, 40, 45, 50)
Підсписок заданого ArrayList: (15, 20, 25, 30)

ArrayList retainAll
Прототип: boolean retainAll (Колекція c)
Параметри: c => Колекція з елементами, які слід зберегти у списку.
Повернене значення: true => Якщо ArrayList змінився в результаті операції.
Опис: Зберігає ті елементи у списку, які відповідають елементам даної колекції c.
Винятки: ClassCastException => Тип колекції та тип списку не збігаються
NullPointerException => Дана колекція є нульовою або список містить нульовий елемент, і колекція не допускає нульових значень.
Наступна програма демонструє метод retainAll.
import java.util.*; class Main{ public static void main(String args()){ //create and initialize ArrayList ArrayList colorsList=new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print the ArrayList System.out.println('Original ArrayList:' + colorsList); //define another collection ArrayList color_collection=new ArrayList(); color_collection.add('Red'); color_collection.add('Blue'); System.out.println('Collection elements to be retained in the list:' + color_collection); //call retainAll method with above collection as an argument colorsList.retainAll(color_collection); //print the ArrayList after retainAll call. System.out.println('ArrayList after retainAll call:' + colorsList); } } Вихід:
Оригінальний список масивів: (Червоний, Зелений, Синій, Жовтий)
Елементи колекції, які слід зберегти у списку: (Червоний, Синій)
ArrayList після виклику retainAll: (Червоний, Синій)

ArrayList Iterator
Прототип: Ітератор ітератора ()
Параметри: НІЛ
Повернене значення: Ітератор => ітератор над елементами списку.
Опис: Повертає ітератор для обходу елементів списку у належній послідовності.
ArrayList listIterator
Я
Прототип: ListIterator listIterator ()
Параметри: НІЛ
Повернене значення: ListIterator => listIterator над елементами списку.
Опис: Повертає ітератор списку для обходу елементів даного списку.
II.
Прототип: ListIterator listIterator (індекс int)
Параметри: index => Позиція першого елемента в listIterator.
Повернене значення: ListIterator => ListIterator для списку із зазначеного індексу.
Опис: Повертає ітератор списку, починаючи з зазначеної позиції ‘index’, щоб обходити елементи даного списку.
Винятки: IndexOutOfBoundsException => Даний індекс виходить за межі діапазону.
Приклад методів iterator () та listIterator ().
import java.util.*; class Main{ public static void main(String args()){ //create ArrayList and initialize it ArrayList cities=new ArrayList(); cities.add('Mumbai'); cities.add('Pune'); cities.add('Hyderabad'); cities.add('Delhi'); //use iterator() method to traverse through the list System.out.println('List contents using Iterator () method:'); Iterator iter=cities.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } //use listIterator() method to traverse through the list System.out.println('
List contents using listIterator () method:'); ListIterator list_iter=cities.listIterator(); while(list_iter.hasNext()) { System.out.print(list_iter.next() + ' '); } } } Вихід:
Вміст списку за допомогою методу Iterator ():
Мумбаї Пуна, Хайдерабад, Делі
Вміст списку за допомогою методу listIterator ():
Мумбаї Пуна, Хайдерабад, Делі

Додавання масиву до списку масивів у Java
ArrayList підтримує метод addAll для додавання елементів колекції до ArrayList. Подібним чином ви також можете додати масив до списку ArrayList. Це робиться за допомогою методу ‘Collections.addAll’.
Приклад додавання масиву до списку ArrayList.
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print ArrayList System.out.println('
Initial ArrayList :' + city_List); //define an array. String() myArray = new String(){'Cochin', 'Goa'}; //add the array to the ArrayList Collections.addAll(city_List,myArray); //print the ArrayList System.out.println('
ArrayList after adding array :' + city_List); } } Вихід:
Початковий список масивів: (Делі, Мумбаї, Ченнаї, Колката)
ArrayList після додавання масиву: (Делі, Мумбаї, Ченнаї, Колката, Кочін, Гоа)

Сортувати ArrayList у Java
ArrayList використовує метод Collections.sort для сортування його елементів. За замовчуванням список сортується за зростанням методом Collections.sort. Якщо ArrayList потрібно сортувати за спаданням, то вам потрібно вказати параметр ‘Collections.reverseOrder ()’ для методу сортування.
Нижче наведена програма для сортування ArrayList у порядку зростання та зменшення:
import java.util.*; public class Main { public static void main(String args()){ //Create and initialize an ArrayList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print initial ArrayList System.out.println('Initial ArrayList:' + colorsList); //sort ArrayList in ascending order Collections.sort(colorsList); //print sorted ArrayList System.out.println('
ArrayList sorted in ascending order:'); System.out.println(colorsList); //sort ArrayList in reverse(desending) order Collections.sort(colorsList, Collections.reverseOrder()); //print sorted list System.out.println('
ArrayList sorted in descending order:'); System.out.println(colorsList); } }Вихід:
Початковий список масивів: (Червоний, Зелений, Синій, Жовтий)
ArrayList відсортовано за зростанням:
(Синій, Зелений, Червоний, Жовтий)
ArrayList відсортовано за спаданням:
(Жовтий, Червоний, Зелений, Синій)

Якщо ArrayList містить інші об'єкти класу як елементи, ви можете використовувати інтерфейси Comparable та Comparator. Детальніше про інтерфейси буде розглянуто в наших наступних підручниках.
Змінення списку масивів у Java
Ви також можете змінити ArrayList у Java. Одним із методів для цього є використання традиційного методу обходу ArrayList у зворотному порядку та копіювання кожного елемента в новий ArrayList.
Інший метод - використання класу Collections, який забезпечує метод «зворотного», що використовується для звороту колекції.
Програма зворотного переліку ArrayList за допомогою класу Collections наведена нижче.
import java.io.*; import java.util.*; public class Main { public static void main(String() args) { // create and initialize an ArrayList ArrayList oddList = new ArrayList(); oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); System.out.print('Initial ArrayList: ' + oddList); // use Collections.reverse method to reverse the ArrayList Collections.reverse(oddList); //print the ArrayList System.out.print('
Reversed ArrayList: ' + oddList); } } Вихід:
Початковий ArrayList: (1, 3, 5, 7, 9)
Перевернутий список масивів: (9, 7, 5, 3, 1)

Видалення дублікатів зі списку масивів у Java
Щоб видалити дублікати з ArrayList, ви можете ще раз вдатися до традиційного методу використання ітератора для обходу ArrayList і зберігати лише перше входження елемента в інший ArrayList.
Ще один метод - це використання методу ‘distinct ()’ класу stream (). Цей метод повертає потік різних елементів. Функція stream () доступна в Java з Java 8 і далі.
Реалізація методу stream () .distinct () наведена нижче:
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String() args) { // Create an ArrayList of numbers ArrayList numList = new ArrayList (Arrays.asList(1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)); //print the original ArrayList System.out.println('Original ArrayList:' + numList); //Use Java 8 stream().distinct() method to remove duplicates from the list List distinctList = numList.stream().distinct().collect(Collectors.toList()); //print the new list System.out.println('ArrayList without duplicates:' + distinctList); } } Вихід:
Оригінальний список масивів: (1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)
ArrayList без дублікатів: (1, 2, 3, 5, 6, 7, 8)

Перемішати (довільно) список масивів у Java
Ви також можете 'перетасувати' або рандомізувати елементи ArrayList. Це робиться за допомогою методу Collections.shuffle (). За допомогою цього методу ви можете перетасувати ArrayList із налаштуваннями за замовчуванням або забезпечити функцію random (), яка рандомізує елементи відповідно до випадкового значення.
Програма Java для досягнення цього наведена нижче.
import java.util.*; public class Main { public static void main(String() args) { //create and initialize a String ArrayList ArrayList strlist = new ArrayList(); strlist.add('east'); strlist.add('west'); strlist.add('north'); strlist.add('south'); strlist.add('southwest'); strlist.add('northeast'); //print the original list System.out.println('Original ArrayList :
' + strlist); //shuffle the ArrayList without random function Collections.shuffle(strlist); System.out.println('
Shuffled ArrayList without Random() :
' + strlist); // shuffle the ArrayList with random() function Collections.shuffle(strlist, new Random()); System.out.println('
Shuffled ArrayList with Random() :
' + strlist); // use random (2) to shuffle the ArrayList Collections.shuffle(strlist, new Random(2)); System.out.println('
Shuffled ArrayList with Random(2) :
' + strlist); } } Вихід:
Оригінальний ArrayList: (схід, захід, північ, південь, південний захід, північний схід) Перемішаний ArrayList без випадкового (): (північ, північний схід, схід, південний захід, південь, захід)
Перемішаний список масивів із випадковим (): (південь, схід, північ, північний схід, захід, південний захід)
Перемішаний список масивів із випадковим (2): (південний захід, південь, схід, північний схід, північ, захід)

Часті запитання
Q # 1) Яка різниця між однорідними та різнорідними контейнерами в Java?
Відповідь: Однорідні контейнери містять предмети / елементи одного типу. З іншого боку, неоднорідні контейнери мають об'єкти змішаного типу.
Q # 2) Чи є ArrayList у Java неоднорідним?
Відповідь: Так. Оскільки ArrayLists підтримують загальні засоби і, отже, стирання типів, він може містити змішані об'єкти при реалізації як загальний ArrayList.
Q # 3) Чи може ArrayList зберігати int?
Відповідь: Ні. ArrayLists не може зберігати значення типу int, але він може зберігати цілі об’єкти, оскільки ArrayLists може містити лише об’єкти. Таким чином, для зберігання примітивних типів ви повинні використовувати класи обгортки, такі як Integer для ints.
Q # 4) Що відбувається, коли ArrayList заповнений?
Відповідь: Кожен об’єкт ArrayList має функцію з назвою „ємність”. Коли ArrayList заповнений, ємність ArrayList автоматично збільшується, щоб звільнити місце для більшої кількості елементів.
Q # 5) У чому різниця між методом removeAll і retainAll в ArrayList?
Відповідь: Методи ArrayList ‘removeAll’ та ‘retainAll’ демонструють протилежну поведінку.
Хоча метод removeAll видаляє всі елементи зі списку, що відповідають колекції, переданій як аргумент цього методу, retainAll, навпаки, зберігає всі елементи у списку, які збігаються з елементами колекції.
Висновок
У цьому посібнику ми детально обговорили методи ArrayList на прикладі.
Ми також розглянули деякі особливі випадки, такі як додавання елементів у передню частину списку. Ми також обговорили інші операції над ArrayList, такі як сортування, реверсування та перетасовка ArrayList.
У нашому підручнику ми обговоримо деякі перетворення ArrayList.
=> Тут слідкуйте за простими навчальними серіями Java.
Рекомендована література
- Підручник з роздумів про Java з прикладами
- Підручник із рядків Java | Рядові методи Java на прикладах
- Методи списку Java - Список сортування, Містить, Список Додати, Видалити список
- Java ArrayList - Як оголосити, ініціалізувати та надрукувати ArrayList
- Перетворення Java ArrayList в інші колекції
- Підручник з Java SWING: Контейнер, компоненти та обробка подій
- Зворотній масив у Java - 3 методи з прикладами
- Підручник JAVA для початківців: 100+ практичних відео-підручників Java