arraylist methods java tutorial with example programs
U ovom uputstvu raspravljat ćemo o metodama Java ArrayList kao što su add, addAll, remove, removeAll, size, contains, retainAll, Sort, Reverse, itd. S primjerima:
U prethodnom uputstvu istražili smo strukturu podataka ArrayList i klasa ArrayList osigurala je ovu strukturu podataka / kolekciju u Javi. Naučili smo stvaranje, inicijalizaciju itd. Objekata ArrayList.
Osim ovih značajki koje nam pomažu u definiranju ArrayList, klasa ArrayList u Javi također nudi punopravni API funkcije koji se sastoji od metoda koje se koriste za manipulaciju ArrayList objektima.
=> Ovdje provjerite SVE Java tutorijale.
Ove metode omogućuju nam dodavanje, brisanje, pretraživanje elemenata u ArrayListu kao i dohvaćanje duljine / veličine elemenata ArrayList itd.
U ovom uputstvu detaljno ćemo razmotriti ove metode s jednostavnim primjerima programiranja.
Što ćete naučiti:
- ArrayList metode u Javi
- Dodaj ArrayList
- ArrayList addAll
- ArrayList Dodaj na prednju stranu
- ArrayList ukloniti
- ArrayList removeAll
- ArrayList removeRange
- Veličina popisa array (duljina)
- ArrayList sadrži
- ArrayList get
- Skup arrayList (zamijeni element)
- ArrayList clear
- ArrayList isEmpty
- ArrayList indexOf
- ArrayList lastIndexOf
- ArrayList toArray
- Klon ArrayList
- ArrayList subList
- ArrayList retainAll
- ArrayList Iterator
- ArrayList listIterator
- Dodaj niz na ArrayList u Javi
- Poredaj ArrayList u Javi
- Obrni popis array-a u Javi
- Ukloni duplikate s popisa nizova u Javi
- Nasumično promijenite (nasumično) popis nizova u Javi
- Često postavljana pitanja
- Zaključak
ArrayList metode u Javi
Sljedeća tablica navodi sve metode koje nudi klasa ArrayList.
Metoda | Prototip metode | Opis metode |
---|---|---|
Sadrži | boolean sadrži (objekt o) | Provjerava sadrži li popis zadani element 'o'. Vraća true ako je element prisutan. |
Dodati | logički dodatak (E e) | Dodaje dati element e na kraj popisa. |
void add (int indeks, E element) | Dodaje dati element 'element' na navedenom položaju 'indeks'. | |
Dodaj Sve | boolean addAll (Zbirka c) | Dodaje sve elemente u datoj zbirci c na kraj popisa. |
logički addAll (indeks int, zbirka c) | Dodaje sve elemente u datoj zbirci c na položaju navedenom ‘indeksom’ na popisu. | |
Čisto | void clear () | Brisanje popisa uklanjanjem svih elemenata s popisa. |
Klon | Klon objekta () | Izrađuje plitku kopiju datog ArrayList-a. |
osiguratiKapacitet | void secureCapacity (int minCapacity) | Povećava kapacitet ArrayList-a kako bi se osiguralo da ima minCapacity. |
Dobiti | E get (int indeks) | Vraća element na popisu prisutan na položaju navedenom 'indeks'. |
indexOf | int indexOf (objekt o) | Vraća indeks prvog pojavljivanja elementa o na popisu. -1 ako element o nije prisutan na popisu. |
prazno je | logički isEmpty () | Provjerava je li zadani popis prazan. |
Iterator | Iterator iterator () | Vraća iterator za prelazak preko elemenata popisa u ispravnom slijedu. |
lastIndexOf | int lastIndexOf (objekt o) | Vraća indeks posljednjeg pojavljivanja navedenog elementa o na popisu. -1 ako element nije prisutan na popisu. |
listIterator | ListIterator listIterator () | Vraća iterator popisa za prelazak preko elemenata datog popisa. |
ListIterator listIterator (int indeks) | Vraća iterator popisa počevši od navedenog položaja ‘indeks’ za prelazak preko elemenata datog popisa. | |
ukloniti | E ukloni (int indeks) | Briše element na ‘indeksu’ u ArrayListu. |
logičko uklanjanje (objekt o) | Briše prvu pojavu elementa o s popisa. | |
ukloniti sve | boolean removeAll (Zbirka c) | Uklanja sve elemente s popisa koji se podudaraju s elementima u datoj zbirci c. |
removeRange | zaštićena praznina removeRange (int fromIndex, int toIndex) | S popisa uklanja elemente navedene u danom rasponu, od indeksa (uključujući) do indeksa (ekskluzivno). |
zadržiSve | boolean retainAll (Zbirka c) | Zadržava one elemente na popisu koji se podudaraju s elementima u datoj zbirci c. |
postaviti | E skup (indeks int, E element) | Postavlja vrijednost elementa u danom 'indeksu' na novu vrijednost koju daje 'element'. |
veličina | veličina int () | Vraća ukupan broj elemenata ili duljinu popisa. |
podlista | Popis popisa (int fromIndex, int toIndex) | Vraća podspisak između zadanog raspona, od indeksa do indeksa za zadani popis. |
toArray | Objekt () uArray () | Pretvara zadani popis u niz. |
T () doArray (T () a) | Pretvara zadani popis u niz tipa koji daje a. | |
trimToSize | void trimToSize () | Skraćuje kapacitet ArrayList na veličinu ili broj elemenata prisutnih na popisu. |
Zatim ćemo detaljno razmotriti svaku od ovih metoda iz API-ja funkcije ArrayList i predstaviti primjere programiranja. Nakon razgovora o svim gore navedenim metodama, poduzet ćemo i neke specifične operacije koje se izvode pomoću ArrayLists-a koji nisu dio API-ja funkcije ArrayList.
Dodaj ArrayList
Ja
Prototip: logički dodatak (E e)
Parametri: e => Element koji se dodaje na ArrayList.
Povratna vrijednost: true => Element je uspješno dodan.
Opis: Dodaje dati element e na kraj popisa.
II.
Prototip: void add (int indeks, E element)
Parametri:
index => Položaj na kojem treba dodati element.
Element => Element koji se dodaje na ArrayList.
Povratna vrijednost: poništiti
Opis: Dodaje dati element 'element' na navedenom položaju 'indeks' pomicanjem elementa na tom položaju i sljedećih elemenata udesno.
Iznimke: IndexOutOfBoundsException => Ako je navedeni indeks izvan raspona.
ArrayList addAll
Ja
Prototip: boolean addAll (Zbirka c)
Parametri: c => Zbirka čiji se elementi dodaju u ArrayList.
Povratna vrijednost: true => Ako je operacija promijenila ArrayList.
Opis: Dodaje sve elemente u datoj zbirci c na kraj popisa. Rezultat operacije je nedefiniran ako je zbirka izmijenjena dok je operacija u tijeku.
Iznimke: NullPointerException => Ako je zadana zbirka c null.
yl
Prototip: logički addAll (indeks int, zbirka c)
Parametri: index => Položaj na kojem se dodaju elementi u datoj zbirci.
Povratna vrijednost: true => Ako se popis promijenio kao rezultat operacije.
Opis: Dodaje sve elemente u datoj zbirci c na položaju navedenom ‘indeksom’ na popisu. Element na navedenom indeksu i sljedeći elementi pomaknuti su udesno. Rezultat operacije je nedefiniran ako se zbirka koja se dodaje mijenja tijekom operacije.
Iznimke: IndexOutOfBoundsException: ako je indeks u koji treba dodati zbirku izvan granica
NullPointerException: ako je zadana zbirka c null.
Sljedeći Java program prikazuje upotrebu metoda add i 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); } }
Izlaz:
Početni popis nizova: (Delhi, Mumbai, Chennai, Kolkata)
rrayList nakon dodavanja elementa u indeks 1: (Delhi, NYC, Mumbai, Chennai, Kolkata)
ArrayList nakon dodavanja popisa u indeks 4: (Delhi, NYC, Mumbai, Chennai, Pune, Hyderabad, Kolkata)
Gornji program koristi obje verzije metode add za dodavanje elemenata na popis. Također dodaje zbirku na popis po navedenom indeksu. Primijetite pomicanje elemenata udesno od ArrayList, što je vidljivo iz rezultata programa.
ArrayList Dodaj na prednju stranu
Kao što je već spomenuto, prva verzija metode add dodaje elemente na kraj popisa. Ako želite dodati elemente na početku ArrayList-a, tada morate iskoristiti drugu verziju metode add. Ova metoda dodavanja uzima indeks kao parametar. Ovaj indeks je položaj na kojem se element treba dodati.
Tako da biste dodali element na početak popisa, morate navesti indeks kao 0 što je početak popisa.
Sljedeći program dodaje element na prednju stranu 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); } }
Izlaz:
Početni popis nizova:
(5, 7, 9)
ArrayList nakon dodavanja elemenata na početku:
(1, 3, 5, 7, 9)
ArrayList ukloniti
Ja
Prototip: E ukloni (int indeks)
Parametri: index => Položaj na kojem će se element ukloniti s ArrayList.
Povratna vrijednost: E => Element koji se briše
Opis: Briše element na ‘indeksu’ u ArrayListu i pomiče slijedeće elemente ulijevo.
Iznimke: IndexOutOfBoundsException => Navedeni indeks je izvan dosega.
II.
Prototip: logičko uklanjanje (objekt o)
Parametri: o => Element koji treba ukloniti s ArrayList.
Povratna vrijednost: true => Ako je element prisutan na popisu.
Opis: Briše prvu pojavu elementa o s popisa. Ako element nije prisutan na popisu, tada nema učinka ove operacije. Jednom kada se element izbriše, sljedeći se elementi pomiču ulijevo.
ArrayList removeAll
Prototip: boolean removeAll (Zbirka c)
Parametri: c => Zbirka čiji se elementi podudaraju s elementima ArrayList-a i trebaju se ukloniti.
Povratna vrijednost: true => Ako je operacija promijenila ArrayList.
Opis: Uklanja sve elemente s popisa koji se podudaraju s elementima u datoj zbirci c. Kao rezultat, preostali su elementi pomaknuti lijevo od popisa.
Iznimke: ClassCastException => Klasa nije ista kao ona navedene zbirke koja implicira da je klasa nekompatibilna.
NullPointerException => Ako je zadana zbirka c null; ili ako c ima null element i zbirka to ne dopušta.
ArrayList removeRange
Prototip: zaštićena praznina removeRange (int fromIndex, int toIndex)
Parametri: fromIndex => Indeks početnog elementa raspona koji se uklanja.
toIndex => Indeks elementa nakon posljednjeg elementa u rasponu koji se uklanja.
Povratna vrijednost: poništiti
Opis: S popisa uklanja elemente navedene u danom rasponu, od indeksa (uključujući) do indeksa (ekskluzivno). Ova operacija skraćuje duljinu popisa za (toIndex-fromIndex). Ova operacija nema učinka u slučaju fromIndex = toIndex.
Iznimke: IndexOutOfBoundsException => Ako je bilo koji od indeksa (fromIndex ili toIndex) izvan granica.
Primijenimo Java program kako bismo demonstrirali neke od ovih metoda uklanjanja o kojima smo gore govorili.
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); } }
Izlaz:
Početni popis nizova: (Delhi, Mumbai, Chennai, Kolkata, Pune, Hyderabad
ArrayList nakon uklanjanja elementa u indeksu 2: (Delhi, Mumbai, Kolkata, Pune, Hyderabad)
ArrayList nakon uklanjanja elementa -> Kolkata: (Delhi, Mumbai, Pune, Hyderabad)
ArrayList nakon poziva za uklanjanjeSve: (Mumbai, Pune)
kako pokrenuti .jar datoteke
Veličina popisa array (duljina)
Prototip: veličina int ()
Parametri: NULA
Povratna vrijednost: int => Broj elemenata u ArrayListu.
Opis: Vraća ukupan broj elemenata ili duljinu ArrayList.
EnsureCapacity
Prototip: void secureCapacity (int minCapacity)
Parametri: minCapacity => Minimalni kapacitet željen za ArrayList.
Povratna vrijednost: poništiti
Opis: Povećava kapacitet ArrayList-a kako bi se osiguralo da ima minCapacity.
trimToSize
Prototip: void trimToSize ()
Parametri: NULA
Povratna vrijednost: poništiti
Opis: Skraćuje kapacitet ArrayList na veličinu ili broj elemenata prisutnih na popisu.
Sljedeći primjer programiranja prikazuje metode veličine (), secureCapacity () i 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 + ' '); } } }
Izlaz:
Početna veličina: 0
Izvorni popis: (2, 4, 6, 8, 10)
Veličina popisa array nakon operacije dodavanja: 5
Veličina arrayList-a nakon poziva i dodavanja postupka osiguranjeCapacity (): 7
Veličina popisa array nakon operacije trimToSize (): 7
ArrayList final:
2 4 6 8 10 12 14
ArrayList sadrži
Prototip: boolean sadrži (objekt o)
Parametri: o => Element koji treba provjeriti ako je prisutan u ArrayListu.
Povratna vrijednost: true => Ako ArrayList sadrži element o.
Opis: Provjerava sadrži li popis zadani element 'o'. Vraća true ako je element prisutan.
U sljedećem programu koristimo metodu ‘sadrži’.
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')); } }
Izlaz:
ArrayList sadrži ('Crveno zeleno'): false
ArrayList sadrži (‘Blue’): true
ArrayList sadrži (‘Žuta’): false
ArrayList sadrži (‘White’): true
Kao što je prikazano u gornjem izlazu, metoda 'contains' provjerava je li navedeni argument prisutan u ArrayList i vraća li true ili false.
ArrayList get
Prototip: E get (int indeks)
Parametri: index => Indeks pri kojem elementu treba dohvatiti ArrayList.
Povratna vrijednost: E => Vrijednost elementa na danom indeksu u ArrayList.
Opis: Vraća element na popisu prisutan na položaju navedenom 'indeks'.
Iznimke: IndexOutOfBoundsException => Ako je indeks izvan granica.
Skup arrayList (zamijeni element)
Prototip: E skup (indeks int, E element)
Parametri: index => Indeks kod kojeg će se element zamijeniti.
Element => Novi element koji treba postaviti na navedeni indeks.
Povratna vrijednost: E => Element koji se zamjenjuje postavljenom operacijom.
Opis: Postavlja vrijednost elementa u danom 'indeksu' na novu vrijednost koju daje 'element'.
Iznimke: IndexOutOfBoundsException => Ako je indeks izvan granica
Java program u nastavku koristi get () i set () metodu za dohvaćanje i zamjenu vrijednosti u ArrayListu.
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)); } }
Izlaz:
Unos u indeksu 2 prije poziva za postavljanje: Plavo
Unos u indeks 2 nakon poziva za postavljanje: Žuta
ArrayList clear
Prototip: void clear ()
Parametri: NULA
Povratna vrijednost: poništiti
Opis: Brisanje popisa uklanjanjem svih elemenata s popisa.
ArrayList isEmpty
Prototip: logički isEmpty ()
Parametri: NULA
Povratna vrijednost: true => ako je popis prazan
Opis: Provjerava je li zadani popis prazan.
Funkcije Clear () i isEmpty () prikazane su u nastavku.
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()); } }
Izlaz:
Lista array: (crvena, zelena, plava, bijela)
Je li ArrayList prazan nakon clear ()? :pravi
ArrayList indexOf
Prototip: int indexOf (objekt o)
Parametri: o => Element čiji se indeks nalazi u ArrayListu.
Povratna vrijednost: int => Indeks prvog pojavljivanja elementa na popisu.
Opis: Vraća indeks prvog pojavljivanja elementa o na popisu. -1 ako element o nije prisutan na popisu.
ArrayList lastIndexOf
Prototip: int lastIndexOf (objekt o)
Parametri: o => Element koji treba tražiti.
Povratna vrijednost: int => Indeks posljednjeg pojavljivanja elementa na popisu.
Opis: Vraća indeks posljednjeg pojavljivanja navedenog elementa o na popisu. -1 ako element nije prisutan na popisu.
Sljedeći Java program prikazuje metode indexOf i 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)); } }
Izlaz:
Popis nizova: (1, 1, 2, 3, 5, 3, 2, 1, 1)
indexOf (1): 0
lastIndexOf (1): 8
indexOf (2): 2
lastIndexOf (2): 6
indeksOf (3): 3
lastIndexOf (3): 5
indexOf (5): 4
lastIndexOf (5): 4
ArrayList toArray
Prototip: Objekt () uArray ()
Parametri: NULA
Povratna vrijednost: Objekt () => niz. Ovaj vraćeni niz sadrži sve elemente popisa u ispravnom slijedu.
Opis: Pretvara zadani popis u niz.
Prototip: T () doArray (T () a)
Parametri: a => Niz za spremanje elemenata popisa. Ako veličina polja nije dovoljna za elemente popisa, za spremanje elemenata stvara se drugi niz istog tipa kao a.
Povratna vrijednost: T () => Niz koji sadrži sve elemente popisa.
Opis: Pretvara zadani popis u niz tipa koji daje a.
Iznimke: ArrayStoreException => Ako postoji neusklađenost vrste izvođenja niza i vrste izvođenja ili supertipa njegovih elemenata.
NullPointerException => Dati niz je null
Java program u nastavku prikazuje toArray metodu 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)); } }
Izlaz:
Popis polja: (10, 20, 30, 40, 50)
Niz s ArrayList: (10, 20, 30, 40, 50)
Klon ArrayList
Prototip: Klon objekta ()
Parametri: NULA
Povratna vrijednost: Objekt => Klon instance ArrayList.
Opis: Izrađuje plitku kopiju datog ArrayList-a.
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); } }
Izlaz:
Izvorni popis nizova: (jabuka, naranča, dinja, grožđe)
Klonirani popis nizova: (jabuka, naranča, dinja, grožđe)
Izvorni popis nizova nakon dodavanja i uklanjanja: (jabuka, dinja, grožđe, mango)
Klonirani popis nizova nakon promjene izvornika: (jabuka, naranča, dinja, grožđe)
Iz gornjeg rezultata programa možete vidjeti da je klonirani ArrayList plitka kopija izvornog ArrayList. To znači da se promjene izvornog ArrayList-a ne odražavaju u kloniranom ArrayListu jer ne dijele memorijska mjesta svakog elementa.
Za izradu dubinske kopije Array-a potrebno je preći izvorni ArrayList i kopirati svaki njegov element na odredišni ArrayList.
ArrayList subList
Prototip: Popis popisa (int fromIndex, int toIndex)
Parametri: fromIndex => Početni indeks raspona (uključujući)
toIndex => Krajnji indeks raspona (ekskluzivno)
Povratna vrijednost: Popis => Podspis popisa u danom rasponu.
Opis: Vraća podspisak između određenog raspona, od Indexa do indeksa za zadani popis. Imajte na umu da ovaj popis ili prikaz popisa u danom rasponu podržava sve operacije podržane popisom. Ne vraća se prikaz ako je fromIndex = toIndex.
Iznimke: IndexOutOfBoundsException => Bačeno kad je toIndex izvan dosega.
IllegalArgumentException => Ako fromIndex> toIndex tj. Indeksi nisu u redu.
Pogledajmo primjer metode 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); } }
Izlaz:
Izvorni popis nizova: (5, 10, 15, 20, 25, 30, 35, 40, 45, 50)
Spisak danih ArrayList: (15, 20, 25, 30)
ArrayList retainAll
Prototip: boolean retainAll (Zbirka c)
Parametri: c => Zbirka s elementima koje treba zadržati na popisu.
Povratna vrijednost: true => Ako se ArrayList promijenio kao rezultat operacije.
Opis: Zadržava one elemente na popisu koji se podudaraju s elementima u datoj zbirci c.
Iznimke: ClassCastException => Vrsta zbirke i vrsta popisa se ne podudaraju
NullPointerException => Dana zbirka je nula ili popis sadrži null element, a zbirka ne dopušta nule.
Sljedeći program prikazuje metodu 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); } }
Izlaz:
Izvorni popis nizova: (crvena, zelena, plava, žuta)
Elementi kolekcije koji će se zadržati na popisu: (Crvena, Plava)
ArrayList nakon zadržavanja svih poziva: (Crvena, Plava)
ArrayList Iterator
Prototip: Iterator iterator ()
Parametri: NULA
Povratna vrijednost: Iterator => iterator preko elemenata popisa.
Opis: Vraća iterator za prelazak preko elemenata popisa u ispravnom slijedu.
ArrayList listIterator
Ja
Prototip: ListIterator listIterator ()
Parametri: NULA
Povratna vrijednost: ListIterator => listIterator preko elemenata popisa.
Opis: Vraća iterator popisa za prelazak preko elemenata datog popisa.
II.
Prototip: ListIterator listIterator (int indeks)
Parametri: index => Položaj prvog elementa u listIteratoru.
Povratna vrijednost: ListIterator => ListIterator za popis iz navedenog indeksa.
Opis: Vraća iterator popisa počevši od navedenog položaja ‘indeks’ za prelazak preko elemenata datog popisa.
Iznimke: IndexOutOfBoundsException => Dati indeks je izvan dosega.
Primjer metoda iterator () i listIterator ().
najbolji program za uklanjanje virusa
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() + ' '); } } }
Izlaz:
Sadržaj popisa pomoću metode Iterator ():
Mumbai Pune Hyderabad Delhi
Sadržaj popisa pomoću metode listIterator ():
Mumbai Pune Hyderabad Delhi
Dodaj niz na ArrayList u Javi
ArrayList podržava metodu addAll za dodavanje elemenata kolekcije u ArrayList. Na sličan način, ArrayListu možete dodati i Array. To se radi pomoću metode ‘Collections.addAll’.
Primjer dodavanja polja 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); } }
Izlaz:
Početni popis nizova: (Delhi, Mumbai, Chennai, Kolkata)
ArrayList nakon dodavanja niza: (Delhi, Mumbai, Chennai, Kolkata, Cochin, Goa)
Poredaj ArrayList u Javi
ArrayList koristi metodu Collections.sort za sortiranje svojih elemenata. Prema zadanim postavkama, popis se sortira u uzlaznom redoslijedu metodom Collections.sort. Ako se ArrayList želi sortirati u opadajućem redoslijedu, tada morate načinu sortiranja navesti parametar ‘Collections.reverseOrder ()’.
Dolje je dan program za sortiranje ArrayList-a u rastućem i silaznom redoslijedu:
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); } }
Izlaz:
Početni popis nizova: (crvena, zelena, plava, žuta)
ArrayList sortiran u rastućem redoslijedu:
(Plava, Zelena, Crvena, Žuta)
ArrayList poredano u opadajućem redoslijedu:
(Žuta, Crvena, Zelena, Plava)
U slučaju da ArrayList sadrži druge objekte klase kao elemente, tada možete koristiti sučelja Comparable i Comparator. Više detalja o sučeljima bit će pokriveno u našim kasnijim vodičima.
Obrni popis array-a u Javi
ArrayList možete i obrnuti u Javi. Jedna od metoda za to je korištenje tradicionalne metode prelaska ArrayList-a obrnutim redoslijedom i kopiranja svakog elementa u novi ArrayList.
Druga metoda je upotreba klase Collections koja pruža metodu 'reverse' koja se koristi za obrtanje zbirke.
Program za poništavanje ArrayList-a pomoću klase Collections dan je u nastavku.
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); } }
Izlaz:
Početni popis nizova: (1, 3, 5, 7, 9)
Obrnuti popis nizova: (9, 7, 5, 3, 1)
Ukloni duplikate s popisa nizova u Javi
Da biste uklonili duplikate s ArrayList-a, možete još jednom pribjeći tradicionalnoj metodi korištenja iteratora za prelazak kroz ArrayList i pohraniti samo prvu pojavu elementa u drugi ArrayList.
Još jedna metoda je upotreba metode 'distinct ()' klase stream (). Ova metoda vraća tok različitih elemenata. Značajka stream () dostupna je u Javi od Jave 8 nadalje.
Implementacija metode stream () .distinct () dana je u nastavku:
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); } }
Izlaz:
Izvorni popis nizova: (1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)
Popis polja bez duplikata: (1, 2, 3, 5, 6, 7, 8)
Nasumično promijenite (nasumično) popis nizova u Javi
ArrayList elemente možete i 'nasumično promiješati' ili nasumično randomizirati. To se radi metodom Collections.shuffle (). Koristeći ovu metodu, ArrayList možete miješati sa zadanim postavkama ili pružiti funkciju random () koja će randomizirati elemente u skladu s ponuđenom slučajnom vrijednošću.
Java program koji će to postići dan je u nastavku.
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); } }
Izlaz:
Izvorni ArrayList: (istok, zapad, sjever, jug, jugozapad, sjeveroistok) Premješten ArrayList bez slučajnog odabira (): (sjever, sjeveroistok, istok, jugozapad, jug, zapad)
Izmiješan popis nizova sa slučajnim (): (jug, istok, sjever, sjeveroistok, zapad, jugozapad)
Premješten popis array-a sa slučajnim (2): (jugozapad, jug, istok, sjeveroistok, sjever, zapad)
Često postavljana pitanja
P # 1) Koja je razlika između homogenih i heterogenih spremnika u Javi?
Odgovor: Homogeni spremnici sadrže predmete / elemente iste vrste. S druge strane, heterogeni spremnici imaju predmete mješovitog tipa.
P # 2) Je li ArrayList u Javi heterogen?
Odgovor: Da. Budući da ArrayLists podržavaju generičke, a time i brisanje tipa, može sadržavati miješane objekte kada se implementiraju kao generički ArrayList.
3. pitanje) Može li ArrayList pohraniti int?
Odgovor: Ne. ArrayLists ne mogu pohraniti vrijednosti poput int, ali mogu pohraniti Integer objekte jer ArrayLists mogu sadržavati samo objekte. Stoga za pohranu primitivnih tipova trebali biste koristiti klase omota poput Integer za ints.
P # 4) Što se događa kad je ArrayList pun?
Odgovor: Svaki objekt ArrayList ima značajku nazvanu 'kapacitet'. Kad je ArrayList pun, kapacitet ArrayList se automatski povećava kako bi se napravilo mjesta za više elemenata.
P # 5) Koja je razlika između metode removeAll i retainAll u ArrayListu?
Odgovor: Metode ArrayList 'removeAll' i 'retainAll' pokazuju suprotno ponašanje.
Iako metoda removeAll uklanja sve elemente s popisa koji se podudaraju sa zbirkom koja je proslijeđena kao argument ovoj metodi, retainAll, s druge strane, zadržava sve elemente na popisu koji se podudaraju s onim iz zbirke.
Zaključak
U ovom smo tutorijalu detaljno razmotrili metode ArrayList s primjerom.
Također smo razmotrili neke posebne slučajeve poput dodavanja elemenata na početak popisa. Također smo razgovarali o drugim operacijama na ArrayListu, poput sortiranja, preokretanja i miješanja ArrayList-a.
U našem nadolazećem vodiču razgovarat ćemo o nekim konverzijama ArrayList.
=> Ovdje pripazite na jednostavnu seriju Java treninga.
Preporučena literatura
- Java Vodič za refleksiju s primjerima
- Java String Vodič | Metode Java niza s primjerima
- Metode Java popisa - Poredaj popis, Sadrži, Popis dodaj, Popis ukloni
- Java ArrayList - Kako prijaviti, inicijalizirati i ispisati ArrayList
- Konverzije Java ArrayList u druge zbirke
- Java SWING Vodič: Spremnici, komponente i upravljanje događajima
- Obrnuti niz u Javi - 3 metode s primjerima
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala