Java-da ArrayList, dinamik ölçülü bir sıra yaratmaq üçün ən çox istifadə edilən məlumat quruluşudur. Abstrakt sinifini uzadır və tətbiq edir Java siyahısı interfeys. ArrayList arasındakı əsas fərq, massivin statik olmasıdır (element əlavə edə və silə bilmirik), ArrayList isə dinamikdir (elementləri əlavə edə, çıxara və ya dəyişdirə bilərik). Bu yazıda, ArrayList nə olduğunu və bir ArrayList'i Java-da necə işə salacağımızı görəcəyik.
Ayrıca ilginizi çekebilir ArrayList və LinkedList
Mündəricat
Java ArrayList iyerarxiyası
Java-da ArrayList Sınıfının elan edilməsi
ArrayList'i Java-da istifadə etmək üçün idxal etməliyik java.util.ArrayList
. Aşağıda bir ArrayList elanı verilmişdir
ümumi sinif ArrayList AbstractList siyahısını uzadır Siyahını həyata keçirir , RandomAccess, Cloneable, Serializable
burada E elementi və ya obyekt növünü ifadə edir (Məsələn: Tamsayı, String və s.)
ArrayList sinfi AbstractList sinfini genişləndirir və List interfeysini həyata keçirir.
ArrayList Konstruktorları
ArrayList yarada bilərik Java İnşaatçıları aşağıdakı 3 metodda:
konstruktor | təsvir |
---|---|
ArrayList () | Bu boş bir sıra siyahısı yaradır |
ArrayList (Kolleksiya c) | Bu kolleksiya elementləri ilə bir sıra siyahısı yaradır |
ArrayList (int ölçüsü) | Bu, müəyyən ölçülü bir sıra siyahısı yaradır |
Java ArrayList Xüsusiyyətləri
- Əlavə edə biləcəyimiz, dəyişdirə biləcəyimiz və ya dəyişdirə biləcəyimiz ölçüsü dəyişdirilə bilən dinamik bir sıra elementləri çıxarın siyahıdan istənilən vaxt
- Ardıcıl bir qaydada saxlayır.
- Bu asandır hər hansı bir məlumat əldə edin indeksə əsaslanan siyahıdan.
- İzin verir dublikat siyahıdakı elementlər
Java ArrayList Metodları
Aşağıdakı metodlara əlavə olaraq, Java-da ArrayList var keçid List interfeysinin bütün metodlarına.
Üsul | təsvir | Parametr |
---|---|---|
Mantı əlavə et (Nesne e) | Göstərilən elementi siyahının sonuna əlavə edir. | e - əlavə ediləcək element. Qaytarma dəyəri - Doğru |
void add (int index, Object e) | Elementi göstərilən indeksə əlavə edir. İndeksdə artıq bir element varsa, o, sağa keçir | indeks - elementin daxil edilməli olduğu indeks e - daxil edilməsi lazım olan element |
Boolean addAll (Collection c) | Göstərilən elementlərin siyahısını siyahıya əlavə edir. | c - əlavə ediləcək elementlər toplusu Qaytarma dəyəri - doğrudur |
Boolean addAll (int index, Collection c) | Göstərilən indeksdə elementlər kolleksiyası əlavə edir. İndeksdə artıq element varsa, sonradan sağa keçir | indeks - elementlərin əlavə edilməli olduğu indeks c - əlavə ediləcək elementlər toplusu Qaytarma dəyəri - Doğru |
boşluq təmiz () | Siyahıdakı bütün elementləri təmizləyir. | |
Mantiq tərkibində (Nesne o) var | Siyahıda göstərilən elementin olub-olmadığını yoxlayır | Qaytarma dəyəri - siyahıda element varsa doğrudur |
BooleanAll (Collection c) ehtiva edir | Siyahıda kolleksiyadakı bütün elementlərin olub-olmadığını yoxlayır | Qaytarma dəyəri - siyahıda bütün elementlər varsa doğrudur |
Mantiq bərabərdir (O obyekt) | Siyahıda göstərilən bütün elementləri dəqiq qaydada ehtiva etdiyini müqayisə edir | Qaytarma dəyəri - obyekt elementləri siyahı ilə uyğun gəlirsə doğrudur |
Obyekt getIndex (int indeksi) | Elementi göstərilən indeksdə alır | indeks - alınması lazım olan elementin göstəricisi Qaytarma dəyəri - Göstərilən indeksdəki element |
int indexOf (Obyekt o) | Göstərilən elementin ilk meydana çıxma indeksini götürür | o - Müəyyən ediləcək element Qaytarma dəyəri - indeks dəyəri |
Boole isEmpty () | Siyahının boş olub olmadığını yoxlayır | Qaytarma dəyəri - siyahıda dəyər yoxdursa doğrudur |
Təkrarlayıcı iterator () | Siyahının yineleyicisini ardıcıllıqla alır | Qaytarma dəyəri - təkrarlayıcı |
int lastIndexOf (Obyekt o) | Müəyyən edilmiş obyektin son hadisəsini alır | o - Müəyyən ediləcək element Qaytarma dəyəri - indeks dəyəri |
Obyekt sil (int indeksi) | Müəyyən edilmiş indeksdəki elementi silir | indeks - elementin silinməli olduğu indeks mövqeyi Qaytarma dəyəri - Silinən element |
Mantı sil (Nesne o) | Varsa göstərilən obyektin ilk meydana çıxmasını siyahıdan silər | o - Sökülməsi lazım olan element Qaytarma dəyəri - siyahıda element varsa, doğrudur |
Boolean kaldırAll (Collection c) | Varsa kolleksiyadakı bütün elementlərin ilk meydana çıxmasını siyahıdan çıxarır | c - elementlərin toplanması Qaytarma dəyəri - siyahıda kolleksiya varsa doğrudur |
Boolean tutmaAll (Collection c) | Siyahıda kolleksiyada göstərilən bütün elementləri saxlayır. Digər elementlər silinəcəkdir | c - saxlanılması lazım olan elementlər toplusu Qaytarma dəyəri - adlanan metod sayəsində siyahı dəyişsə doğrudur |
Obyekt dəsti (int index, Object o) | Müəyyən edilmiş indeksdəki elementi ötürülmüş obyekt ilə əvəz edir | o - dəyişdiriləcək element indeks - elementin indeksi Qaytarma dəyəri - Daha əvvəl göstərilən indeksdə olan elementi qaytarır |
int ölçüsü () | Siyahının ölçüsünü götürür | Qaytarma dəyəri - siyahının ölçüsü |
Siyahı alt siyahısı (int fromIndex, int toIndex) | Siyahının hissəsini start və endIndex əsas götürür | fromIndex - alt siyahının alınması lazım olan vəziyyət (daxil edilir) toIndex - alt siyahının alınacağı indeks (xaric) |
void provideCapacity (int minacapity) | Arraylistin ölçüsünü artırır və qeyd edildiyi kimi minimum tutumu tutmağı təmin edir | mincapacity - sıra siyahısının saxlaya biləcəyi minimum element sayı |
boş sort (Müqayisələndirici c) | Siyahıda olan elementləri müqayisə arqumentinə əsasən sıralayır | c - siyahı elementlərini müqayisə etmək üçün istifadə olunan kompartor |
Obyekt [] toArray () | Bir sıra elementləri müvafiq ardıcıllıqla qaytarır | Qaytarma dəyəri - Siyahıdakı bütün elementlərin düzgün ardıcıllıqla düzülməsi |
String toString () | Massiv elementləri toplusunun bir String nümayəndəliyini qaytarır | Qaytarma dəyəri - Vergül və boşluqla ayrılmış və [] daxilində olan sıra elementlərinin sətri |
boş trimToSize () | ArrayList misalının ölçüsünü cari siyahı ölçüsünə endirir |
Java ArrayList Ümumi və Qeyri-Ümumi Bəyannamə
JDK 1.5-dən əvvəl Java Collection çərçivəsi aşağıda göstərildiyi kimi ümumi idi.
ArrayList al = yeni ArrayList (); -> Siyahıda hər növ element ola bilər
JDK 1.5-dən sonra, aşağıdakı kimi istifadə edilə bilən qeyri-ümumi dəstəkləyir. Element tipini <> daxilində təyin edə bilərik.
ArrayList al = yeni ArrayList (); -> Siyahıda yalnız String dəyərləri ola bilər
ArrayList al = yeni ArrayList (); -> Siyahıda yalnız Tamsayı dəyəri ola bilər
Java ArrayList İstisnaları
ArrayList Java atır istisnalar aşağıda:
- DesteklenmeyenOperationException - əməliyyat dəstəklənmədikdə
- IndexOutofBoundsException - etibarsız indeks göstərildiyi zaman (fromIndex <0 və ya fromIndex> toIndex və ya toIndex> size)
- ClassCastException - göstərilən elementin sinfi onu siyahıya əlavə etməyə mane olduqda
- NullPointerException - göstərilən element sıfır olduqda və siyahı boş element əlavə etməyə imkan vermir
- IllegalArgumentException - elementin bəzi xassələri siyahıya əlavə edilməsinə mane olduqda
ArrayList'i Java-ya import edin
ArrayList sinifindən istifadə etməyə başlamazdan əvvəl istifadə etmək üçün müvafiq paketi idxal etməliyik. Bunun üçün ArrayList istifadə etmək üçün aşağıdakı paketi idxal edirik.
import java.util.ArrayList;
Java-da ArrayList elan edin
A yarataraq Java-da ArrayList elan edə bilərik dəyişən ArrayList tipli. Siyahının növünü String və ya Tamsayı və s. Kimi təyin edə bilərik. Aşağıda ArrayList və String tiplərinin ArrayList elan edilməsinə bir nümunə verilmişdir.
ArrayList<String> colors; ArrayList<Integer> weight;
Java'da ArrayList yaradın
Bir ArrayList elan etdikdən sonra onu bir obyekti hazırlamaq və dəyişənə təyin etmək üçün konstruktoru çağıraraq yarada bilərik. Yuxarıda müzakirə edildiyi kimi hər hansı bir inşaatçıdan istifadə edə bilərik. Aşağıdakı kimi bir bəyanatda ArrayList elan edə və yarada bilərik.
ArrayList<String> colors = new ArrayList<String>();
(OR)
ArrayList<String> colors; //declare an ArrayList colors = new ArrayList<String>(); //create an ArrayList
ArrayList-i Java-da necə işə salmaq olar?
ArrayList elan edib yaratdıqdan sonra onu lazımi dəyərlərlə işə sala bilərik. Aşağıda göstərildiyi kimi bir ArrayListi başlatmaq üçün bir neçə metod var.
Add () metodundan istifadə olunur
ArrayList-i Java-da işə salmaq üçün yayılmış metodlardan biri add () metodundan istifadə etməkdir.
ArrayList<String> colors = new ArrayList<String>(); colors.add("Red"); colors.add("Blue"); colors.add("Green");
AsList () metodundan istifadə olunur
ArrayList yaratarkən Arrays sinfinin asList () metodundan istifadə edə bilərik. Bu, ArrayList-i işə salmaq üçün başqa bir metoddur.
ArrayList<String> color = new ArrayList<String>( Arrays.asList("Red","Blue","Green") );
List.Of () metodundan istifadə etmək
List.of () metodu bir ArrayList-i başlatmaq üçün başqa bir yoldur.
List<String> colors = new ArrayList<>( List.of("Red","Blue","Green") );
Başqa bir Kolleksiyadan istifadə etmək
Başqa bir Kolleksiyanın dəyərlərindən istifadə edərək bir ArrayListi də işə sala bilərik. Aşağıdakı kodda məlumat dəyişənini rənglər ArrayList dəyərləri ilə başlatırıq.
ArrayList<String> colors = new ArrayList<String>(); colors.add("Red"); colors.add("Blue"); colors.add("Green"); ArrayList<String> data = new ArrayList<String>(colors);
Java ArrayList Nümunələr
ArrayList yaratmaq və elementlər və kolleksiya əlavə etmək
Əvvəlcə Java tipli bir ArrayList yaradırıq Sim və sonra siyahıya elementlər əlavə edin. Sonra indeks 1-ə yeni bir element əlavə edirik. Beləliklə indeks 1-də əvvəllər mövcud olan element ardıcıl olaraq sağa doğru hərəkət edəcəkdir. Bir sıra indeks həmişə 0-dan başlayır.
Sonra, 2 elementdən ibarət yeni bir siyahı yaradırıq və bütün kolleksiyanı indeks 1-də 1-ci siyahıya əlavə edirik.
import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { //Create a String ArrayList ArrayList<String> al = new ArrayList<String>(); //Add elements al.add("Java"); al.add("JavaScript"); al.add("PHP"); System.out.println("Element in the list1:"); System.out.println(al); //Add element at index 1 al.add(1, "C"); System.out.println("After adding element at index 1: "); System.out.println(al); //Create list2 ArrayList<String> list = new ArrayList<String>(); list.add("C++"); list.add("Ruby"); System.out.println("Elements in list2:"); System.out.println(list); //Add list2 elements in list1 al.addAll(1, list); System.out.println("Elements in List 1 after adding list2:"); System.out.println(al); } }
Output: Element in the list1: [Java, JavaScript, PHP] After adding element at index 1: [Java, C, JavaScript, PHP] Elements in list2: [C++, Ruby] Elements in List 1 after adding list2: [Java, C++, Ruby, C, JavaScript, PHP]
ArrayList-dən bir elementin dəyişdirilməsi və silinməsi
Aşağıda dəyişdirmək üçün bir nümunə proqram var array siyahısı və Java-da ArrayList-dən bir elementi silin.
import java.util.ArrayList; public class ArrayListDemo2 { public static void main(String[] args) { //Create an Integer ArrayList ArrayList<Integer> numbers = new ArrayList<Integer>(); numbers.add(4); numbers.add(8); numbers.add(2); System.out.println("Elements in the list are: "); System.out.println(numbers); //Modify element numbers.set(1, 6); System.out.println("After modifying an element at index 1:"); System.out.println(numbers); //Remove an element numbers.remove(2); System.out.println("After removing an element at index 2:"); System.out.println(numbers); } }
Output: Elements in the list are: [4, 8, 2] After modifying an element at index 1: [4, 6, 2] After removing an element at index 2: [4, 6]
Digər faydalı metodlar
Aşağıdakı nümunə ArrayList-in bir hissəsi olan contains (), indexOf () və retainAll () metodlarının istifadəsini göstərir.
import java.util.ArrayList; public class ArrayListDemo4 { public static void main(String[] args) { ArrayList<String> letters = new ArrayList<String>(); letters.add("A"); letters.add("G"); letters.add("R"); System.out.println(letters.contains("U")); int i = letters.indexOf("G"); System.out.println("Index of G is " + i); ArrayList<String> c = new ArrayList<String>(); c.add("F"); c.add("E"); c.add("T"); c.add("P"); letters.addAll(c); System.out.println("Elements in the list after using addAll:"); System.out.println(letters); letters.retainAll(c); System.out.println("Elements in the list after using retainAll:"); System.out.println(letters); } }
Output: false Index of G is 1 Elements in the list after using addAll: [A, G, R, F, E, T, P] Elements in the list after using retainAll: [F, E, T, P]
Javada bir ArrayListi silin
Aşağıdakı misal, ArrayList-də isEmpty () və clear () metodlarının istifadəsinin nəticəsini açıq şəkildə göstərir. Clear () metodundan istifadə edərək, bütün elementləri silməklə ArrayList'i boşalda bilərik.
import java.util.ArrayList; public class ArrayListDemo5 { public static void main(String[] args) { ArrayList<String> s = new ArrayList<String>(); s.add("India"); s.add("US"); s.add("Germany"); System.out.println("Contents in list:"); System.out.println(s); System.out.println("Result of calling isEmpty(): " + s.isEmpty()); s.clear(); System.out.println("Contents in list after calling clear(): " + s); System.out.println("Result of calling isEmpty() after clear: " + s.isEmpty()); } }
Contents in list: [India, US, Germany] Result of calling isEmpty(): false Contents in list after calling clear(): [] Result of calling isEmpty() after clear: true
sureCapacity ()
Bu üsul Java ArrayList -in bir minimum element sayı. Bu dinamik olaraq böyüyən bir sıra ölçüsü üçün istifadə edilə bilər.
import java.util.ArrayList; public class ArrayListDemo6 { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("Mango"); al.add("Guava"); al.add("Apple"); al.ensureCapacity(3); System.out.println("Array list can store
of 3 elements"); al.add("Orange"); System.out.println(al); } }
Output: Array list can store minimum of 3 elements [Mango, Guava, Apple, Orange]
ArrayList'i Java-da çap edin - elementləri təkrarlayın və ya gəzin
Biz təkrarlamaq aşağıdakı metodlardan birini istifadə edərək Java-da ArrayList vasitəsilə:
- Döngü üçün
- hər
- Təkrarlayıcı interfeysi
- ListIterator interfeysi
Döngü üçün istifadə olunan elementləri əldə edin
Burada, sıra elementlərini almaq və nəticədə çap etmək üçün loop üçün istifadə edirik.
import java.util.ArrayList; public class ArrayListDemo3 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("Ramesh"); list.add("Banu"); list.add("Priya"); list.add("Karthik"); int size = list.size(); System.out.println("Size of list is : " + size); for(int i=0;i<size;i++) { System.out.println(list.get(i)); } } }
Output: Size of list is : 4 Ramesh Banu Priya Karthik
Hər döngə üçün istifadə edərək elementlər əldə edin
Biz də istifadə edə bilərik hər döngə üçün massiv elementlərini aşağıda göstərildiyi kimi əldə etmək.
import java.util.ArrayList; public class ArrayListDemo3 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("Ramesh"); list.add("Banu"); list.add("Priya"); list.add("Karthik"); for(String s: list) { System.out.println(s); } } }
Output: Ramesh Banu Priya Karthik
Iterator və ListIterator istifadə edərək hərəkət edin
İterator və ListIterator digərləridir metodika Java ArrayList-də massiv elementlərindən keçmək. Bunun üçün əvvəlcə bir ArrayList yaradırıq və həmin obyektdən iterator obyekti və ya ListIterator obyekti yaratmaq üçün istifadə edirik. Bundan sonra istifadə edərək yineleyerek elementləri əldə etmək üçün next () kimi daxili metodlardan istifadə edə bilərik döngə zamanı. Əvvəlki () metodundan istifadə edərək geriyə doğru gedə bilərik.
import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListIterator { public static void main(String[] args) { ArrayList<String> cities = new ArrayList<String>(); cities.add("Bangalore"); cities.add("Chennai"); cities.add("Delhi"); cities.add("Mumbai"); cities.add("Hyderabad"); System.out.println("Traversing forward using iterator"); Iterator<String> it = cities.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println("\nTraversing reverse using listiterator"); ListIterator<String> li = cities.listIterator(cities.size()); while(li.hasPrevious()) { System.out.println(li.previous()); } } }
Output: Traversing forward using iterator Bangalore Chennai Delhi Mumbai Hyderabad Traversing reverse using listiterator Hyderabad Mumbai Delhi Chennai Bangalore
Java-da bir ArrayList sırala
Java Collection çərçivəsində istifadə edərək, sıra siyahısındakı elementləri sıralaya bilərik cür metodu aşağıda göstərildiyi kimi. Budur tam ədədlərin çeşidlənməsi ArrayList -də mövcuddur.
import java.util.ArrayList; import java.util.Collections; public class ArrayListSort { public static void main(String[] args) { ArrayList<Integer> i = new ArrayList<Integer>(); i.add(5); i.add(1); i.add(10); i.add(3); i.add(8); System.out.println("Before Sorting"); for(int num : i) System.out.println(num); Collections.sort(i); System.out.println("After Sorting"); for(int numbers : i) System.out.println(numbers); } }
Output: Before Sorting 5 1 10 3 8 After Sorting 1 3 5 8 10
Java ArrayList istifadəçi tərəfindən təyin olunan obyektlərin nümunəsi
İstifadəçi tərəfindən təyin olunmuş obyektləri saxlamaq üçün ArrayList-dən də istifadə edə bilərik. Aşağıdakı nümunə, ArrayListdə Employee sinif obyektini necə saxladığımızı göstərir. Bundan istifadə edərək ArrayList-ə elementlər əlavə edə bilərsiniz.
import java.util.ArrayList; import java.util.Iterator; class Employee { int empid; String empname; String empdesignation; Employee(int empid,String empname,String empdesignation) { this.empid = empid; this.empname = empname; this.empdesignation = empdesignation; } } public class ArrayListObject { public static void main(String[] args) { //Create Employee class objects Employee e1 = new Employee(100,"Rohit","Developer"); Employee e2 = new Employee(200,"Shyam","Tester"); Employee e3 = new Employee(205,"Tarun","Trainee"); //Create an arraylist ArrayList<Employee> list = new ArrayList<Employee>(); //Add employee objects to the list list.add(e1); list.add(e2); list.add(e3); //Declare iterator Iterator i = list.iterator(); while(i.hasNext()) { //Convert to Employee object to access the elements Employee emp = (Employee)i.next(); System.out.println(emp.empid + " " + emp.empname + " " + emp.empdesignation); } } }
Output: 100 Rohit Developer 200 Shyam Tester 205 Tarun Trainee
nəticə
Bu təlimatda ArrayList və Java-da bir ArrayList-in necə işə salınacağı, metodları və massiv elementlərindən nümunə proqramları ilə necə alınacağı barədə ətraflı məlumat verilir. Maraqlana bilərsiz Java kolleksiyası müsahibə sualları sonra gedin müsahibələri çatlayın.