ArrayList în Java: o introducere pentru începători [2022]

Publicat: 2022-11-22

O matrice este o structură de date răspândită și esențială în fiecare limbaj de programare, cu un dezavantaj - dimensiunea sa este fixă. Să vedem cum poate ajuta ArrayList în Java în acest sens.

O matrice poate fi de două tipuri: o matrice statică sau o matrice dinamică. O matrice nu poate fi mărită dinamic în limbaje de programare precum Java. În schimb, dimensiunea matricei este declarată în timpul inițializării matricei. Dar, în multe cazuri, acest lucru poate duce la multe probleme. Pentru a rezolva această problemă, în Java sunt folosite ArrayLists. Dimensiunea matricei crește automat atunci când un element este împins într-o ArrayList.

În acest articol, veți afla despre ArrayLists în Java. Veți înțelege diferența de bază dintre Array și ArrayList și, de asemenea, veți afla despre diferitele tipuri de ArrayLists și despre cum să le utilizați.

Array vs. ArrayList

Diferența principală dintre un Array și un ArrayList este că dimensiunea unui Array este statică, dar o dimensiune ArrayList poate fi dinamică. Deoarece o matrice este fixă, timpul de iterare a matricei durează mai puțin decât o matrice dinamică.

Mai sunt și câteva diferențe între ele.

  • O matrice statică poate fi unică sau multidimensională, dar o ArrayList poate fi doar unidimensională.
  • Un Array este o structură de date primitivă disponibilă în Java. Dar un ArrayList este o parte a unui Collection Framework API în Java. Este construit pe deasupra Arrays.
  • Puteți declara matrice cu tipuri de date primitive. Tipurile de date primitive nu pot fi utilizate într-o ArrayList. Dacă doriți să utilizați un tip de date primitiv, va trebui să utilizați clasa wrapper corespunzătoare tipului de date.

Tipuri de ArrayLists în Java

ArrayLists pot fi de orice tip. Dar va trebui să treceți clasa wrapper corespunzătoare, deoarece nu puteți trece tipuri de date primitive într-o ArrayList.

Puteți adăuga tipuri de date simple, cum ar fi tipuri întregi sau șir de caractere, trecând clase wrapper precum Integer sau String .

De asemenea, puteți trece în tipuri complexe, cum ar fi ArrayLists de ArrayLists, hashmaps etc.

Să aruncăm o privire la un exemplu de utilizare a unei clase personalizate în cadrul unui ArrayList.

 import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32

În exemplul de cod de mai sus, este creată o ArrayList de tip User . Veți afla mai multe despre metodele utilizate în exemplul de mai jos.

Crearea unei ArrayList în Java

Ați înțeles deja elementele de bază ale unui ArrayList în Java. Acum să aruncăm o privire la sintaxa unui ArrayList și, după aceasta, vom vedea și cum poate fi folosită în codul Java.

 ArrayList<Type> listName = new ArrayList<>();

Fragmentul de mai sus arată sintaxa definirii unui ArrayList. Type definește tipul ArrayList. De exemplu, dacă doriți să declarați un ArrayList cu tipuri de date întregi, puteți trece <Integer> . Rețineți că nu puteți transmite int deoarece este un tip de date primitiv.

De asemenea, va trebui să importați java.util.ArrayList pentru a utiliza ArrayList în programele dvs. Iată un exemplu de bază al unui program care declară un ArrayList:

 import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []

În codul de mai sus, este declarată un ArrayList numit rainbow de tip String .

Pentru a lucra cu ArrayList, există mai multe metode disponibile. Să aruncăm o privire la câteva metode.

Metoda de add

Clasa ArrayList oferă diverse metode pentru efectuarea de operațiuni precum adăugarea sau eliminarea elementelor, obținerea de valori, setarea unei valori într-o anumită poziție, ștergerea unui ArrayList etc.

Prima metodă pe care o vom vedea este metoda add .

Metoda de add este utilizată pentru adăugarea unui singur articol la o ArrayList . Sintaxa pentru add este prezentată mai jos.

 arrayList.add(int i, Element)

Să înțelegem sintaxa acum. Primul parametru i este un parametru opțional care reprezintă poziția indexului în care elementul pe care doriți să îl adăugați. Al doilea parametru Element este elementul pe care doriți să îl adăugați. Să aruncăm o privire la un exemplu acum.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]

rainbow.add("Violet") adaugă un element la sfârșitul unui ArrayList. Și rainbow.add(0, "Red") adaugă elementul Red la poziția de index 0 a ArrayList. Metoda add() returnează true când un articol este inserat cu succes.

Metoda get

Metoda get este folosită pentru a obține valoarea dintr-o poziție specificată dintr-o ArrayList.

 arrayList.get(int i);

i -ul afișat în sintaxa de mai sus este poziția indexului. De exemplu, dacă doriți să obțineți elementul din poziția de index 1 , scrieți arrayList.get(1) .

 rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet

Codul de mai sus va returna Violet din rainbow ArrayList.

Metoda set

Metoda set este folosită pentru a înlocui valoarea unui articol. De exemplu, dacă doriți să înlocuiți valoarea unui element la poziția de index 0 , scrieți rainbow.set(0, "Purple") , presupunând că aveți o ArrayList numită rainbow .

Sintaxa pentru metoda set este următoarea:

 arrayList.set(int i, Element);

Unde i este poziția indexului și Element este valoarea noului element.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]

În exemplul de mai sus, adăugăm două valori la o ArrayList numită rainbow . Mai întâi se adaugă elementul Violet , apoi la poziția 0 a ArrayList, adăugăm elementul Red . În acest moment, ArrayList completă arată astfel, [Red, Violet] .

Acum, elementul din poziția de index 1 este înlocuit cu valoarea Purple folosind metoda set . După înlocuirea valorii, ArrayList va arăta astfel, [Red, Purple] .

Metoda de remove

Metoda ArrayList remove este folosită pentru a elimina o valoare din ArrayList. Puteți trece fie valoarea, fie poziția index a valorii pe care doriți să o eliminați. Sintaxa pentru metoda de remove este prezentată mai jos:

 arrayList.remove(Object value); // or arrayList.remove(int i);

Să luăm un exemplu pentru o mai bună înțelegere a metodei. Să presupunem că aveți o ArrayList numită rainbow cu aceste valori [Violet, Red, Green] . Acum, dacă doriți să eliminați Red din ArrayList, puteți scrie rainbow.remove("Red"); . Apelarea acestei metode pe ArrayList rainbow va elimina elementul Red din ea.

 // rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]

De asemenea, puteți trece de poziția de index pentru a elimina elementul din poziția de index.

 //rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]

Metoda clear

După cum sugerează și numele, metoda clear elimină toate elementele dintr-o ArrayList. Sintaxa este simplă și nu ia niciun parametru.

 arraylist.clear()

Să aruncăm o privire la un exemplu,

 rainbow.clear(); System.out.println(rainbow); Output: []

Metoda clear nu returnează nicio valoare. În schimb, șterge valoarea ArrayList dată.

Metoda size

Metoda size returnează dimensiunea ArrayList dată. De asemenea, această metodă nu ia niciun parametru. Sintaxa este prezentată mai jos.

 arrayList.size();

arrayList este numele ArrayList aici. Să înțelegem metoda size cu ajutorul unui exemplu.

 ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3

Această metodă returnează valoarea mărimii ArrayList. În exemplul de mai sus, rainbow ArrayList este format din trei valori, astfel încât metoda size returnează 3.

Concluzie

Acest articol a discutat ce este un ArrayList și cum diferă de un Array. Am văzut, de asemenea, cum ar putea fi declarată și utilizată un ArrayList folosind diferite metode disponibile pentru clasa ArrayList.

Dacă doriți să vă aprofundați în învățarea Java, consultați aceste cursuri Java online.