Јава Низ листа разред користи а динамичан низ за чување елемената. То је као низ, али постоји нема ограничења величине . Можемо додати или уклонити елементе у било ком тренутку. Дакле, много је флексибилнији од традиционалног низа. Налази се у јава.утил пакет. То је као вектор у Ц++.
АрраиЛист у Јави такође може имати дуплиране елементе. Он имплементира интерфејс листе тако да овде можемо да користимо све методе интерфејса листе. АрраиЛист интерно одржава редослед уметања.
Наслеђује класу АбстрацтЛист и примењује Интерфејс листе .
Важне тачке о класи Јава АрраиЛист су:
- Јава АрраиЛист класа може да садржи дуплиране елементе.
- Јава АрраиЛист класа одржава редослед уметања.
- Јава АрраиЛист класа није синхронизовано .
- Јава АрраиЛист дозвољава насумичан приступ јер низ ради на бази индекса.
- У АрраиЛист-у, манипулација је мало спорија од ЛинкедЛист-а у Јави јер је потребно много померања ако се било који елемент уклони са листе низа.
- Не можемо да креирамо листу низова примитивних типова, као што су инт, флоат, цхар, итд. У таквим случајевима потребно је користити потребну класу омотача. На пример:
ArrayList al = ArrayList(); // does not work ArrayList al = new ArrayList(); // works fine
- Јава АрраиЛист се иницијализује величином. Величина је динамичка у листи низа, која варира у зависности од елемената који се додају или уклањају са листе.
Хијерархија класе АрраиЛист
Као што је приказано у горњем дијаграму, класа Јава АрраиЛист проширује класу АбстрацтЛист која имплементира интерфејс Лист. Интерфејс листе проширује Цоллецтион и Итерабле интерфејси у хијерархијском редоследу.
Декларација класе АрраиЛист
Хајде да видимо декларацију за класу јава.утил.АрраиЛист.
постордер обилазак бинарног дрвета
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
Конструктори АрраиЛист
Цонструцтор | Опис |
---|---|
Низ листа() | Користи се за прављење празне листе низова. |
АрраиЛист (колекција ц) | Користи се за прављење листе низова која је иницијализована елементима колекције ц. |
АрраиЛист (инт капацитет) | Користи се за прављење листе низова која има наведени почетни капацитет. |
Методе АрраиЛист
Метод | Опис |
---|---|
празнина додати (инт индекс, Е елемент) | Користи се за уметање наведеног елемента на одређену позицију у листи. |
боолеан додати (И и) | Користи се за додавање наведеног елемента на крај листе. |
логички аддАлл (колекција ц) | Користи се за додавање свих елемената наведене колекције на крај ове листе, редоследом којим их враћа итератор наведене колекције. |
боолеан аддАлл (инт индекс, колекција ц) | Користи се за додавање свих елемената у наведеној колекцији, почевши од наведене позиције листе. |
воид цлеар () | Користи се за уклањање свих елемената са ове листе. |
воид осигура Капацитет (инт рекуиредЦапацити) | Користи се за побољшање капацитета инстанце АрраиЛист. |
Е гет(инт индекс) | Користи се за преузимање елемента са одређене позиције листе. |
боолеан исЕмпти() | Враћа тачно ако је листа празна, у супротном нетачно. |
Итератор() | |
листИтератор() | |
инт ластИндекОф(Објекат о) | Користи се за враћање индекса у овој листи последњег појављивања наведеног елемента, или -1 ако листа не садржи овај елемент. |
Објецт[] тоАрраи() | Користи се за враћање низа који садржи све елементе ове листе у исправном редоследу. |
Т[] у низ(Т[] а) | Користи се за враћање низа који садржи све елементе ове листе у исправном редоследу. |
Објецт цлоне() | Користи се за враћање плитке копије АрраиЛист-а. |
логички садржи(објекат о) | Враћа тачно ако листа садржи наведени елемент. |
инт индекОф(Објекат о) | Користи се за враћање индекса у овој листи првог појављивања наведеног елемента, или -1 ако листа не садржи овај елемент. |
Е уклони (инт индекс) | Користи се за уклањање елемента који је присутан на наведеној позицији на листи. |
логички уклони (Објекат о) | Користи се за уклањање првог појављивања наведеног елемента. |
логички ремовеАлл (колекција ц) | Користи се за уклањање свих елемената са листе. |
боолеан ремовеИф (филтер предиката) | Користи се за уклањање свих елемената са листе који задовољавају дати предикат. |
заштићени воид ремовеРанге (инт фромИндек, инт тоИндек) | Користи се за уклањање свих елемената који се налазе унутар датог опсега. |
воид реплацеАлл (оператор УнариОператор) | Користи се за замену свих елемената са листе са наведеним елементом. |
воид РетаинАлл (Збирка ц) | Користи се за задржавање свих елемената на листи који су присутни у наведеној колекцији. |
Е скуп (инт индекс, Е елемент) | Користи се за замену наведеног елемента на листи, који је присутан на наведеној позицији. |
сортирање празнина (компаратор ц) | Користи се за сортирање елемената листе на основу наведеног компаратора. |
Сплитератор сплитератор() | Користи се за креирање сплитератора преко елемената на листи. |
Листа подлиста(инт из индекса, инт у индекс) | Користи се за преузимање свих елемената који се налазе унутар датог опсега. |
инт сизе() | Користи се за враћање броја елемената присутних на листи. |
воид тримТоСизе() | Користи се за смањење капацитета ове инстанце АрраиЛист да буде тренутна величина листе. |
Јава Негенерички вс. Генериц Цоллецтион
Јава оквир за прикупљање није био генерички пре ЈДК 1.5. Од 1.5 је генерички.
Јава нова генеричка колекција вам омогућава да имате само један тип објекта у колекцији. Сада је безбедно за типове, тако да није потребно пребацивање типа током извршавања.
Хајде да видимо стари негенерички пример креирања Јава колекције.
ArrayList list=new ArrayList();//creating old non-generic arraylist
Хајде да видимо нови генерички пример креирања јава колекције.
ArrayList list=new ArrayList();//creating new generic arraylist
У генеричкој колекцији наводимо тип у угаоним заградама. Сада је АрраиЛист принуђен да има једини специфицирани тип објекта у себи. Ако покушате да додате другу врсту објекта, то даје а грешка у времену превођења .
За више информација о Јава генерицима, кликните овде Јава Генерицс Туториал .
Пример Јава АрраиЛист
Назив документа: АрраиЛистЕкампле1.јава
import java.util.*; public class ArrayListExample1{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Mango');//Adding object in arraylist list.add('Apple'); list.add('Banana'); list.add('Grapes'); //Printing the arraylist object System.out.println(list); } }Тестирајте одмах
Излаз:
[Mango, Apple, Banana, Grapes]
Итерација АрраиЛист користећи Итератор
Хајде да видимо пример преласка елемената АрраиЛист користећи интерфејс Итератор.
Назив документа: АрраиЛистЕкампле2.јава
import java.util.*; public class ArrayListExample2{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Mango');//Adding object in arraylist list.add('Apple'); list.add('Banana'); list.add('Grapes'); //Traversing list through Iterator Iterator itr=list.iterator();//getting the Iterator while(itr.hasNext()){//check if iterator has the elements System.out.println(itr.next());//printing the element and move to next } } }Тестирајте одмах
Излаз:
Mango Apple Banana Grapes
Итерација АрраиЛист користећи Фор-еацх петљу
Хајде да видимо пример за прелазак елемената АрраиЛист користећи фор-еацх петљу
Назив документа: АрраиЛистЕкампле3.јава
import java.util.*; public class ArrayListExample3{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Mango');//Adding object in arraylist list.add('Apple'); list.add('Banana'); list.add('Grapes'); //Traversing list through for-each loop for(String fruit:list) System.out.println(fruit); } }
Излаз:
Тестирајте одмахMango Apple Banana Grapes
Преузмите и поставите листу АрраиЛист
Тхе гет() метода враћа елемент по наведеном индексу, док је сет() метода мења елемент.
Назив документа: АрраиЛистЕкампле4.јава
import java.util.*; public class ArrayListExample4{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add('Mango'); al.add('Apple'); al.add('Banana'); al.add('Grapes'); //accessing the element System.out.println('Returning element: '+al.get(1));//it will return the 2nd element, because index starts from 0 //changing the element al.set(1,'Dates'); //Traversing list for(String fruit:al) System.out.println(fruit); } }Тестирајте одмах
Излаз:
Returning element: Apple Mango Dates Banana Grapes
Како сортирати АрраиЛист
Тхе јава.утил пакет пружа услужну класу Збирке , који има статички метод сорт(). Помоћу Цоллецтионс.сорт() метод, лако можемо сортирати АрраиЛист.
Назив документа: СортАрраиЛист.јава
import java.util.*; class SortArrayList{ public static void main(String args[]){ //Creating a list of fruits List list1=new ArrayList(); list1.add('Mango'); list1.add('Apple'); list1.add('Banana'); list1.add('Grapes'); //Sorting the list Collections.sort(list1); //Traversing list through the for-each loop for(String fruit:list1) System.out.println(fruit); System.out.println('Sorting numbers...'); //Creating a list of numbers List list2=new ArrayList(); list2.add(21); list2.add(11); list2.add(51); list2.add(1); //Sorting the list Collections.sort(list2); //Traversing list through the for-each loop for(Integer number:list2) System.out.println(number); } }
Излаз:
Apple Banana Grapes Mango Sorting numbers... 1 11 21 51
Начини понављања елемената колекције у Јави
Постоје различити начини да се пређе кроз елементе колекције:
лексикографски поредак
- По интерфејсу итератора.
- Путем фор-еацх петље.
- По интерфејсу ЛистИтератор.
- Би фор петље.
- Методом форЕацх().
- Методом форЕацхРемаининг().
Понављање колекције на преостале начине
Хајде да видимо пример за прелазак елемената АрраиЛист на друге начине
Назив документа: АрраиЛист4.јава
import java.util.*; class ArrayList4{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Ravi');//Adding object in arraylist list.add('Vijay'); list.add('Ravi'); list.add('Ajay'); System.out.println('Traversing list through List Iterator:'); //Here, element iterates in reverse order ListIterator list1=list.listIterator(list.size()); while(list1.hasPrevious()) { String str=list1.previous(); System.out.println(str); } System.out.println('Traversing list through for loop:'); for(int i=0;i<list.size();i++) { system.out.println(list.get(i)); } system.out.println('traversing list through foreach() method:'); the method is a new feature, introduced in java 8. list.foreach(a->{ //Here, we are using lambda expression System.out.println(a); }); System.out.println('Traversing list through forEachRemaining() method:'); Iterator itr=list.iterator(); itr.forEachRemaining(a-> //Here, we are using lambda expression { System.out.println(a); }); } } </list.size();i++)>
Излаз:
Traversing list through List Iterator: Ajay Ravi Vijay Ravi Traversing list through for loop: Ravi Vijay Ravi Ajay Traversing list through forEach() method: Ravi Vijay Ravi Ajay Traversing list through forEachRemaining() method: Ravi Vijay Ravi Ajay
Кориснички дефинисани објекти класе у Јава АрраиЛист
Хајде да видимо пример где складиштимо објекат класе Студент у листи низа.
Назив документа: АрраиЛист5.јава
class Student{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } }
import java.util.*; class ArrayList5{ public static void main(String args[]){ //Creating user-defined class objects Student s1=new Student(101,'Sonoo',23); Student s2=new Student(102,'Ravi',21); Student s2=new Student(103,'Hanumat',25); //creating arraylist ArrayList al=new ArrayList(); al.add(s1);//adding Student class object al.add(s2); al.add(s3); //Getting Iterator Iterator itr=al.iterator(); //traversing elements of ArrayList object while(itr.hasNext()){ Student st=(Student)itr.next(); System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
Излаз:
101 Sonoo 23 102 Ravi 21 103 Hanumat 25
Пример серијализације и десериализације Јава АрраиЛист
Хајде да видимо пример за серијализацију АрраиЛист објекта и затим га десеријализацију.
Назив документа: АрраиЛист6.јава
import java.io.*; import java.util.*; class ArrayList6 { public static void main(String [] args) { ArrayList al=new ArrayList(); al.add('Ravi'); al.add('Vijay'); al.add('Ajay'); try { //Serialization FileOutputStream fos=new FileOutputStream('file'); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(al); fos.close(); oos.close(); //Deserialization FileInputStream fis=new FileInputStream('file'); ObjectInputStream ois=new ObjectInputStream(fis); ArrayList list=(ArrayList)ois.readObject(); System.out.println(list); }catch(Exception e) { System.out.println(e); } } }
Излаз:
[Ravi, Vijay, Ajay]
Јава АрраиЛист пример за додавање елемената
Овде видимо различите начине за додавање елемента.
Назив документа: АрраиЛист7.јава
обилазак по налогу
import java.util.*; class ArrayList7{ public static void main(String args[]){ ArrayList al=new ArrayList(); System.out.println('Initial list of elements: '+al); //Adding elements to the end of the list al.add('Ravi'); al.add('Vijay'); al.add('Ajay'); System.out.println('After invoking add(E e) method: '+al); //Adding an element at the specific position al.add(1, 'Gaurav'); System.out.println('After invoking add(int index, E element) method: '+al); ArrayList al2=new ArrayList(); al2.add('Sonoo'); al2.add('Hanumat'); //Adding second list elements to the first list al.addAll(al2); System.out.println('After invoking addAll(Collection c) method: '+al); ArrayList al3=new ArrayList(); al3.add('John'); al3.add('Rahul'); //Adding second list elements to the first list at specific position al.addAll(1, al3); System.out.println('After invoking addAll(int index, Collection c) method: '+al); } }
Излаз:
Initial list of elements: [] After invoking add(E e) method: [Ravi, Vijay, Ajay] After invoking add(int index, E element) method: [Ravi, Gaurav, Vijay, Ajay] After invoking addAll(Collection c) method: [Ravi, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addAll(int index, Collection c) method: [Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat]
Јава АрраиЛист пример за уклањање елемената
Овде видимо различите начине за уклањање елемента.
Назив документа: АрраиЛист8.јава
import java.util.*; class ArrayList8 { public static void main(String [] args) { ArrayList al=new ArrayList(); al.add('Ravi'); al.add('Vijay'); al.add('Ajay'); al.add('Anuj'); al.add('Gaurav'); System.out.println('An initial list of elements: '+al); //Removing specific element from arraylist al.remove('Vijay'); System.out.println('After invoking remove(object) method: '+al); //Removing element on the basis of specific position al.remove(0); System.out.println('After invoking remove(index) method: '+al); //Creating another arraylist ArrayList al2=new ArrayList(); al2.add('Ravi'); al2.add('Hanumat'); //Adding new elements to arraylist al.addAll(al2); System.out.println('Updated list : '+al); //Removing all the new elements from arraylist al.removeAll(al2); System.out.println('After invoking removeAll() method: '+al); //Removing elements on the basis of specified condition al.removeIf(str -> str.contains('Ajay')); //Here, we are using Lambda expression System.out.println('After invoking removeIf() method: '+al); //Removing all the elements available in the list al.clear(); System.out.println('After invoking clear() method: '+al); } }
Излаз:
An initial list of elements: [Ravi, Vijay, Ajay, Anuj, Gaurav] After invoking remove(object) method: [Ravi, Ajay, Anuj, Gaurav] After invoking remove(index) method: [Ajay, Anuj, Gaurav] Updated list : [Ajay, Anuj, Gaurav, Ravi, Hanumat] After invoking removeAll() method: [Ajay, Anuj, Gaurav] After invoking removeIf() method: [Anuj, Gaurav] After invoking clear() method: []
Јава АрраиЛист пример методе ретаинАлл().
Назив документа: АрраиЛист9.јава
import java.util.*; class ArrayList9{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add('Ravi'); al.add('Vijay'); al.add('Ajay'); ArrayList al2=new ArrayList(); al2.add('Ravi'); al2.add('Hanumat'); al.retainAll(al2); System.out.println('iterating the elements after retaining the elements of al2'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Излаз:
iterating the elements after retaining the elements of al2 Ravi
Јава АрраиЛист пример методе исЕмпти().
Назив документа: АрраиЛист4.јава
import java.util.*; class ArrayList10{ public static void main(String [] args) { ArrayList al=new ArrayList(); System.out.println('Is ArrayList Empty: '+al.isEmpty()); al.add('Ravi'); al.add('Vijay'); al.add('Ajay'); System.out.println('After Insertion'); System.out.println('Is ArrayList Empty: '+al.isEmpty()); } }
Излаз:
Is ArrayList Empty: true After Insertion Is ArrayList Empty: false
Јава АрраиЛист Пример: књига
Хајде да видимо пример АрраиЛист где додајемо књиге на листу и штампамо све књиге.
Назив документа: АрраиЛистЕкампле20.јава
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayListExample20 { public static void main(String[] args) { //Creating list of Books List list=new ArrayList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications and Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }Тестирајте одмах
Излаз:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications and Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Величина и капацитет листе низова
Величина и капацитет листе низова су два појма која почетнике збуњују. Хајде да то разумемо у овом одељку уз помоћ неких примера. Размотрите следећи исечак кода.
Назив документа: СизеЦапацити.јава
import java.util.*; public class SizeCapacity { public static void main(String[] args) throws Exception { ArrayList al = new ArrayList(); System.out.println('The size of the array is: ' + al.size()); } }
Излаз:
методе низова
The size of the array is: 0
Објашњење: Излаз има смисла јер нисмо урадили ништа са листом низова. Сада посматрајте следећи програм.
Назив документа: СизеЦапацити1.јава
import java.util.*; public class SizeCapacity1 { public static void main(String[] args) throws Exception { ArrayList al = new ArrayList(10); System.out.println('The size of the array is: ' + al.size()); } }
Излаз:
The size of the array is: 0
Објашњење: Видимо да је величина и даље 0, а разлог за то је да број 10 представља капацитет без величине. У ствари, величина представља укупан број елемената присутних у низу. Како нисмо додали ниједан елемент, величина листе низова је нула у оба програма.
Капацитет представља укупан број елемената које листа низова може да садржи. Према томе, капацитет листе низова је увек већи или једнак величини листе низова. Када додамо елемент на листу низова, он проверава да ли је величина листе низа постала једнака капацитету или не. Ако јесте, онда се повећава капацитет листе низова. Дакле, у горњем примеру, капацитет ће бити 10 док се на листу не дода 10 елемената. Када додамо 11тхелемента, капацитет се повећава. Имајте на уму да је у оба примера капацитет листе низа 10. У првом случају, капацитет је 10 јер је подразумевани капацитет листе низа 10. У другом случају смо експлицитно поменули да је капацитет низа листа је 10.
Напомена: Не постоји стандардни метод да се каже како се повећава капацитет у листи низа. У ствари, начин на који се капацитет повећава варира од једне верзије ГДК до друге верзије. Због тога је потребно проверити начин на који је код за повећање капацитета имплементиран у ГДК. Не постоји ниједна унапред дефинисана метода у класи АрраиЛист која враћа капацитет листе низова. Стога, ради бољег разумевања, користите методу капацитета() класе Вецтор. Логика величине и капацитета је иста у класи АрраиЛист и класи Вецтор.
Повезане теме
Како сортирати АрраиЛист у Јави
Разлика између Арраи и АрраиЛист
Када користити АрраиЛист и ЛинкедЛист у Јави
Разлика између АрраиЛист и ЛинкедЛист
Разлика између АрраиЛист и Вецтор
Како упоредити две листе низова у Јави
финална кључна реч у Јави
Како преокренути АрраиЛист у Јави
Када користити АрраиЛист и ЛинкедЛист у Јави
Како направити АрраиЛист само за читање
Разлика између дужине низа и величине() листе АрраиЛист у Јави
Како синхронизовати АрраиЛист у Јави
Како претворити АрраиЛист у Арраи и Арраи у АрраиЛист у Јави
Арраи вс АрраиЛист у Јави
Како сортирати Јава АрраиЛист у опадајућем редоследу
Како уклонити дупликате из АрраиЛист у Јави