arraylist methods java tutorial with example programs
В този урок ще обсъдим методите на Java ArrayList като add, addAll, премахване, removeAll, размер, съдържа, retainAll, Sort, Reverse и др. С примери:
В предишния урок проучихме структурата на данните ArrayList и класът ArrayList, предоставен за тази структура / колекция от данни в Java. Научихме създаването, инициализирането и т.н. на ArrayList обектите.
Освен тези функции, които ни помагат да дефинираме ArrayList, класът ArrayList в Java предоставя и пълноправен API на функцията, който се състои от методи, които се използват за манипулиране на ArrayList обекти.
=> Проверете ВСИЧКИ уроци по Java тук.
Тези методи ни позволяват да добавяме, изтриваме, търсим елементи в ArrayList, както и да извличаме дължината / размера на ArrayList елементи и т.н.
В този урок ще обсъдим подробно тези методи с прости примери за програмиране.
най-добрият изтеглящ mp3 за android
Какво ще научите:
- Методи на ArrayList в Java
- Добавяне на ArrayList
- ArrayList addAll
- ArrayList Добавяне отпред
- ArrayList премахване
- ArrayList removeAll
- ArrayList removeRange
- Размер на ArrayList (дължина)
- ArrayList съдържа
- ArrayList get
- Набор ArrayList (Замяна на елемент)
- ArrayList ясен
- ArrayList isEmpty
- ArrayList indexOf
- ArrayList lastIndexOf
- ArrayList toArray
- Клон на ArrayList
- Подлист на ArrayList
- ArrayList retainAll
- ArrayList Iterator
- ArrayList listIterator
- Добавяне на масив към ArrayList в Java
- Сортирай ArrayList в Java
- Обърнете списък с масиви в Java
- Премахване на дубликати от списък с масиви в Java
- Разбъркайте (произволно) списък с масиви в Java
- често задавани въпроси
- Заключение
Методи на ArrayList в Java
Следващата таблица изброява всички методи, предоставени от класа ArrayList.
Метод | Прототип на метода | Метод Описание |
---|---|---|
Съдържа | boolean съдържа (Обект o) | Проверява дали списъкът съдържа дадения елемент „o“. Връща true, ако елементът присъства. |
Добавяне | булево добавяне (E e) | Добавя даден елемент e в края на списъка. |
void add (int index, E element) | Добавя даден елемент „елемент“ в посочената позиция „индекс“. | |
Добави Всички | boolean addAll (Колекция c) | Добавя всички елементи в дадената колекция c в края на списъка. |
boolean addAll (индекс int, колекция c) | Добавя всички елементи в дадената колекция c на позицията, посочена от ‘индекса’ в списъка. | |
Ясно | празно ясно () | Изчиства списъка, като премахва всички елементи от списъка. |
Клониране | Клон на обект () | Прави плитко копие на дадения ArrayList. |
осигурете капацитет | void secureCapacity (int minCapacity) | Увеличава капацитета на ArrayList, за да се гарантира, че има minCapacity. |
Вземете | E get (индекс int) | Връща елемента в списъка, присъстващ на позицията, посочена от ‘index’. |
индекс на | int indexOf (Обект o) | Връща индекса на първото появяване на елемент o в списъка. -1, ако елемент o не присъства в списъка. |
празно е | boolean 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 отIndex, int toIndex) | Премахва елементи от посочения диапазон, от Индекс (включително) до Индекс (изключителен) от списъка. |
retainAll | boolean retainAll (Колекция c) | Запазва онези елементи в списъка, които съответстват на елементите в дадената колекция c. |
комплект | E набор (индекс int, Е елемент) | Задава стойността на елемента при даден „индекс“ на новата стойност, дадена от „елемент“. |
размер | размер int () | Връща общия брой елементи или дължината на списъка. |
подлист | Подлист на списъка (int отIndex, int toIndex) | Връща подлист между даден диапазон, от Индекс до Индекс за дадения списък. |
toArray | Обект () към масив () | Преобразува дадения списък в масив. |
T () до масив (T () a) | Преобразува дадения списък в масив от типа, даден от a. | |
trimToSize | void trimToSize () | Подрязва капацитета на ArrayList до размера или броя на елементите, присъстващи в списъка. |
След това ще обсъдим подробно всеки от тези методи от API на функцията ArrayList и ще представим примери за програмиране. След обсъждане на всички изброени по-горе методи, ние също така ще предприемем някои специфични операции, които се извършват с помощта на ArrayLists, които не са част от API на функцията ArrayList.
Добавяне на ArrayList
Аз
Прототип: булево добавяне (E e)
Параметри: e => Елемент, който трябва да бъде добавен към ArrayList.
Възвръщаема стойност: true => Елементът е добавен успешно.
Описание: Добавя дадения елемент e в края на списъка.
II.
Прототип: void add (int index, E element)
Параметри:
index => Позиция, на която трябва да се добави елементът.
Елемент => Елемент, който трябва да бъде добавен към ArrayList.
Възвръщаема стойност: нищожен
Описание: Добавя даден елемент „елемент“ в посочената позиция „индекс“, като измества елемента в тази позиция и следващите елементи надясно.
Изключения: IndexOutOfBoundsException => Ако посоченият индекс е извън обхвата.
ArrayList addAll
Аз
Прототип: 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: (Делхи, Ню Йорк, Мумбай, Ченай, Пуна, Хайдерабад, Колката)
Горната програма използва и двете версии на метода за добавяне, за да добави елементи към списъка. Той също така добавя колекция към списъка при посочения индекс. Обърнете внимание на изместването на елементи отдясно на ArrayList, както е видно от изхода на програмата.
ArrayList Добавяне отпред
Както вече споменахме, първата версия на метода add добавя елементите в края на списъка. Ако искате да добавите елементите в началото на ArrayList, тогава трябва да използвате втората версия на метода за добавяне. Този метод за добавяне приема индекс като параметър. Този индекс е позицията, на която трябва да се добави елементът.
По този начин, за да добавите елемента в началото на списъка, трябва да посочите индекса като 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); } }
Изход:
Първоначален списък с масиви:
(5, 7, 9)
ArrayList след добавяне на елементи в началото:
(1, 3, 5, 7, 9)
ArrayList премахване
I.
Прототип: 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 отIndex, int toIndex)
Параметри: fromIndex => Индекс на началния елемент на диапазона, който трябва да бъде премахнат.
toIndex => Индекс на елемента след последния елемент в диапазона, който трябва да бъде премахнат.
Възвръщаема стойност: нищожен
Описание: Премахва елементи от посочения диапазон, от Индекс (включително) до Индекс (изключителен) от списъка. Тази операция съкращава дължината на списъка с (toIndex-fromIndex). Тази операция няма ефект в случай отIndex = toIndex.
Изключения: IndexOutOfBoundsException => Ако някой от индексите (отIndex или 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 след обаждане за премахване на всички: (Мумбай, Пуна)
Размер на ArrayList (дължина)
Прототип: размер int ()
Параметри: НИЛ
Възвръщаема стойност: int => Брой елементи в ArrayList.
Описание: Връща общия брой елементи или дължината на ArrayList.
EnsureCapacity
Прототип: void secureCapacity (int minCapacity)
Параметри: minCapacity => Минималният капацитет, желан за ArrayList.
Възвръщаема стойност: нищожен
Описание: Увеличава капацитета на ArrayList, за да гарантира, че той има minCapacity.
trimToSize
Прототип: void trimToSize ()
Параметри: НИЛ
Възвръщаема стойност: нищожен
Описание: Подрязва капацитета на ArrayList до размера или броя на елементите, присъстващи в списъка.
По-долу пример за програмиране демонстрира методите size (), verifyCapacity () и 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 + ' '); } } }
Изход:
най-добрият инструмент за управление на тестови случаи за jira
Първоначален размер: 0
Оригинален списък: (2, 4, 6, 8, 10)
Размер на ArrayList след операция за добавяне: 5
ArrayList Size след извикване и добавяне на операция verifyCapacity (): 7
Размер на ArrayList след операцията trimToSize (): 7
ArrayList окончателен:
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 съдържа (‘Blue’): true
ArrayList съдържа (‘Yellow’): false
ArrayList съдържа (‘White’): true
Както е показано в горния изход, методът ‘contains’ проверява дали предоставеният аргумент присъства в ArrayList и връща вярно или невярно.
ArrayList get
Прототип: E get (индекс int)
Параметри: index => Индекс, при който елементът трябва да бъде извлечен от ArrayList.
Възвръщаема стойност: E => Стойност на елемента при дадения индекс в ArrayList.
Описание: Връща елемента в списъка, присъстващ на позицията, посочена от ‘index’.
Изключения: IndexOutOfBoundsException => Ако индексът е извън границите.
Набор ArrayList (Замяна на елемент)
Прототип: E набор (индекс int, Е елемент)
Параметри: 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 ясен
Прототип: празно ясно ()
Параметри: НИЛ
Възвръщаема стойност: нищожен
Описание: Изчиства списъка, като премахва всички елементи от списъка.
ArrayList isEmpty
Прототип: boolean 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
Прототип: Обект () към масив ()
Параметри: НИЛ
Възвръщаема стойност: Обект () => масив. Този върнат масив съдържа всички елементи от списъка в правилна последователност.
Описание: Преобразува дадения списък в масив.
Прототип: T () до масив (T () a)
Параметри: a => Масив за съхраняване на елементи от списъка. Ако размерът на масива не е достатъчен за елементите от списъка, се създава друг масив от същия тип като a за съхраняване на елементи.
Възвръщаема стойност: T () => Масив, който съдържа всички елементи от списъка.
Описание: Преобразува дадения списък в масив от типа, даден от a.
Изключения: ArrayStoreException => Ако има несъответствие в типа на изпълнение на масива и типа на изпълнение или супертипа на неговите елементи.
NullPointerException => Даденият масив е нула
Програмата 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
Прототип: Клон на обект ()
Параметри: НИЛ
Възвръщаема стойност: Обект => Клониране на екземпляра 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); } }
Изход:
Оригинален списък с масиви: (ябълка, портокал, пъпеш, грозде)
Клониран списък с масиви: (ябълка, портокал, пъпеш, грозде)
Оригинален списък с масиви след добавяне и премахване: (ябълка, пъпеш, грозде, манго)
Клониран списък с масиви след промяна на оригинала: (Apple, Orange, Melon, Grapes)
От горния изход на програмата можете да видите, че клонираният ArrayList е плитко копие на оригиналния ArrayList. Това означава, че когато оригиналният ArrayList е променен, тези промени не се отразяват в клонирания ArrayList, тъй като не споделят местоположенията в паметта на всеки елемент.
За да направите дълбоко копие на Array, първоначалният ArrayList трябва да бъде пресечен и всеки от неговите елементи трябва да бъде копиран в целевия ArrayList.
Подлист на ArrayList
Прототип: Подлист на списъка (int отIndex, 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 call: (Red, Blue)
ArrayList Iterator
Прототип: Итератор на итератор ()
Параметри: НИЛ
Възвръщаема стойност: Итератор => итератор върху елементите от списъка.
Описание: Връща итератор за обхождане на елементите от списъка в правилната последователност.
ArrayList listIterator
I.
Прототип: ListIterator listIterator ()
Параметри: НИЛ
Възвръщаема стойност: ListIterator => listIterator върху елементите на списъка.
Описание: Връща итератор на списък, за да премине през елементите на дадения списък.
II.
Прототип: ListIterator listIterator (int index)
Параметри: index => Позиция на първия елемент в listIterator.
Възвръщаема стойност: ListIterator => ListIterator за списъка от посочения индекс.
Описание: Връща итератора на списъка, започвайки от посочената позиция ‘индекс’, за да премине през елементите на дадения списък.
Изключения: 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 ():
Мумбай Пуна Хайдерабад Делхи
Добавяне на масив към ArrayList в 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, който предоставя метода ‘reverse’, който се използва за обръщане на колекция.
задействане на портове срещу пренасочване на портове за игри
Програмата за обръщане на 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); } }
Изход:
Първоначален списък с масиви: (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 без произволен (): (север, североизток, изток, югозапад, юг, запад)
Разбъркан ArrayList с Random (): (юг, изток, север, североизток, запад, югозапад)
Разбъркан ArrayList с произволен (2): (югозапад, юг, изток, североизток, север, запад)
често задавани въпроси
В # 1) Каква е разликата между хомогенните и хетерогенните контейнери в Java?
Отговор: Хомогенните контейнери съдържат обекти / елементи от същия тип. От друга страна, хетерогенните контейнери имат обекти от смесен тип.
Q # 2) Хетерогенен ли е ArrayList в Java?
Отговор: Да. Тъй като ArrayLists поддържат генерични данни и следователно изтриване на типа, той може да съдържа смесени обекти, когато се реализира като общ ArrayList.
Q # 3) Може ли ArrayList да съхранява int?
Отговор: Не. ArrayLists не може да съхранява стойности като int, но може да съхранява Integer обекти, тъй като 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 List - Сортиране на списък, Съдържа, Добавяне на списък, Премахване на списък
- Java ArrayList - Как да декларирам, инициализирам и отпечатам ArrayList
- Преобразувания на Java ArrayList в други колекции
- Java SWING Урок: Контейнер, компоненти и обработка на събития
- Обръщане на масив в Java - 3 метода с примери
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео