java list methods sort list
V tomto výučbe sú vysvetlené rôzne metódy zoznamu Java, ako napríklad Zoznam zoradenia, Zoznam obsahuje, Pridať zoznam, Odstrániť zoznam, Veľkosť zoznamu, Pridať všetko, Odstrániť všetko, Obrátiť zoznam a ďalšie:
O rozhraní zoznamu sme už hovorili vo všeobecnosti v našom predchádzajúcom návode. Rozhranie zoznamu má rôzne metódy, ktoré sa používajú na manipuláciu s obsahom zoznamu. Pomocou týchto metód môžete vložiť / vymazať, zoradiť a vyhľadať prvky v zozname.
V tejto príručke sa budeme zaoberať všetkými metódami, ktoré poskytuje rozhranie zoznamu.
=> Tu nájdete A-Z výučbových kurzov Java.
Rozhranie zoznamu využíva na iteráciu zoznamom iterátor zoznamu. Tento zoznam iterátorov sa rozširuje z rozhrania iterátora. V našom ďalšom návode preskúmame viac informácií o iterátore zoznamov.
Čo sa dozviete:
- Zoznam metód v jazyku Java
- Odstrániť duplikáty zo zoznamu v prostredí Java
- často kladené otázky
- Záver
- Odporúčané čítanie
Zoznam metód v jazyku Java
Nasledujúca tabuľka zobrazuje rôzne funkcie poskytované rozhraním zoznamu v jazyku Java.
čo je súbor .jnlp
Metóda zoznamu | Metóda Prototyp | Popis |
---|---|---|
obsahuje | boolean obsahuje (Objekt o) | Skontroluje, či je zadaný prvok v zozname, a vráti hodnotu true, ak je prítomný |
veľkosť | veľkosť int () | Vráti veľkosť zoznamu, tj počet prvkov v zozname alebo dĺžku zoznamu. |
jasný | prázdnota clear () | Vymaže zoznam odstránením všetkých prvkov v zozname |
pridať | void add (int index, Object element) | Pridá daný prvok do zoznamu pri danom indexe |
boolean add (Objekt o) | Pridá daný prvok na koniec zoznamu | |
pridať všetko | boolean addAll (kolekcia c) | Pripojí celú danú kolekciu na koniec zoznamu |
boolean addAll (int index, kolekcia c) | Vloží danú kolekciu (všetky prvky) do zoznamu v zadanom indexe | |
obsahujeVšetko | boolean containsAll (kolekcia c) | Skontroluje, či je zadaná kolekcia (všetky prvky) súčasťou zoznamu. Vráti hodnotu áno. |
rovná sa | boolean equals (Objekt o) | Porovnáva rovnosť zadaného objektu s prvkami zoznamu |
Získajte | Získanie objektu (int index) | Vráti prvok v zozname určenom indexom |
hashCode | int hashCode () | Vráti hodnotu hash kódu zo Zoznamu. |
indexOf` | int indexOf (Objekt o) | Vyhľadá prvý výskyt vstupného prvku a vráti jeho index |
je prázdny | boolean isEmpty () | Skontroluje, či je zoznam prázdny |
lastIndexOf | int lastIndexOf (objekt o) | Vyhľadá posledný výskyt vstupného prvku v zozname a vráti jeho index |
odstrániť | Odstrániť objekt (int index) | Odstráni prvok v zadanom indexe |
boolean remove (Objekt o) | Odstráni prvok pri jeho prvom výskyte v zozname | |
odobrať všetky | boolean removeAll (kolekcia c) | Odstráni zo zoznamu všetky prvky obsiahnuté v zadanej kolekcii |
keepAll | boolean keepAll (kolekcia c) | Naproti removeAll. Zachová prvok uvedený v kolekcii vstupov v zozname. |
Nastaviť | Sada objektov (int index, Object element) | Zmení prvok na zadanom indexe nastavením na zadanú hodnotu |
podzoznam | Zoznam sublistov (int fromIndex, int toIndex) | Vráti podzoznam prvkov medzi fromIndex (vrátane) a toIndex (exkluzívne). |
triediť | void sort (komparátor c) | Zoradí prvok zoznamu podľa zadaného komparátora a získa usporiadaný zoznam |
toArray | Objekt [] toArray () | Vráti reprezentáciu poľa zo zoznamu |
Objekt [] toArray (Objekt [] a) | Vráti reprezentáciu poľa, ktorej typ runtime je rovnaký ako zadaný argument poľa | |
iterátor | Iterátor iterátor () | Vráti iterátor zoznamu |
listIterator | ListIterator listIterator () | Vráti ListIterator pre zoznam |
ListIterator listIterator (int index) | Vráti ListIterator začínajúci na zadanom indexe v zozname |
Ďalej si povieme tieto funkcie spolu s ich príkladmi.
veľkosť
Prototyp: veľkosť int ()
Parametre: NIL
Návratová hodnota: int => Počet prvkov v zozname alebo inými slovami dĺžka zoznamu.
Popis: Funkcia size () vráti počet prvkov alebo veľkosť zoznamu. Zjednodušene sa to dá nazvať aj dĺžka.
jasný
Prototyp: prázdnota clear ()
Parametre: NIL
Návratová hodnota: Žiadna návratová hodnota
Popis: Vymaže zoznam odstránením všetkých jeho prvkov. Ak operácia nie je zoznamom podporovaná, hodí „UnSupportedException“.
Nasledujúci príklad bude demonštrovať metódu size () a clear ().
import java.util.*; public class Main { public static void main(String[] args) { List strList = new ArrayList(); // Creating a list //add items to list strList.add('Java'); strList.add('C++'); //print the size of list System.out.println('Size of list:' + strList.size()); //add more items to list strList.add('Ruby'); strList.add('Python'); strList.add('C#'); //print the size of list again System.out.println('Size of list after adding more elements:' + strList.size()); //clear method strList.clear(); System.out.println('List after calling clear() method:' + strList); } }
Výkon:
pridať
Prototyp: void add (int index, Object element)
Parametre: index - pozícia, na ktorú sa má prvok pridať.
Element - prvok, ktorý sa má pridať
Návratová hodnota: neplatný
Popis: Pridá daný prvok do zoznamu pri danom indexe. Nasledujúce prvky sú posunuté doprava.
Vyvolávajú sa tieto výnimky:
IndexOutOfBoundsException: Index zoznamu je mimo rozsahu
UnsupportedOperationException: Operácia pridania nie je zoznamom podporovaná.
ClassCastException: Prvok nie je možné pridať do zoznamu z dôvodu triedy zadaných prvkov.
IllegalArgumentException: Zadaný prvok alebo niektorý aspekt nie je správny.
Pridať
Prototyp: boolean add (Objekt o)
Parametre: o => Element, ktorý sa má pridať do zoznamu
Návratová hodnota: true => Prvok bol úspešne pridaný
False => Pridanie nebolo úspešné
Popis: Táto metóda pridá daný prvok na koniec zoznamu.
Táto operácia môže spôsobiť nasledujúce výnimky.
UnsupportedOperationException: Operácia pridania, ktorú tento zoznam nepodporuje.
ClassCastException: Zadaný prvok nie je možné pridať z dôvodu jeho triedy
IllegalArgumentException: Zadaný prvok alebo niektorý aspekt nie je správny.
pridať všetko
Prototyp: boolean addAll (kolekcia c)
Parametre: c => Zbierka, ktorej prvky sa majú pridať do zoznamu
Návratová hodnota: true => Vykonanie metódy bolo úspešné
Popis: Metóda addAll berie všetky prvky z kolekcie ca pridáva ich na koniec zoznamu udržiavaním poradia, ktoré bolo nastavené.
Táto metóda vykazuje nešpecifikované správanie, ak je kolekcia počas operácie zmenená.
Metóda vyvoláva nasledujúce výnimky:
UnsupportedOperationException: Operácia pridania, ktorú tento zoznam nepodporuje.
ClassCastException: Zadaný prvok nie je možné pridať z dôvodu jeho triedy.
IllegalArgumentException: Zadaný prvok alebo niektorý aspekt nie je správny.
pridať všetko
Prototyp: boolean addAll (int index, kolekcia c)
Parametre: index => Poloha, na ktorú sa má zbierka vložiť.
C => Zbierka, ktorá sa má vložiť do zoznamu.
Návratová hodnota: true => Ak sú prvky kolekcie úspešne pridané do zoznamu.
Popis: Metóda addAll vloží všetky prvky v zadanej kolekcii do zoznamu v zadanom indexe. Nasledujúce prvky sa potom posunú doprava. Rovnako ako v prípade predchádzajúceho preťaženia addAll, správanie je nešpecifikované, ak sa kolekcia zmení, keď operácia prebieha.
Výnimky vyvolané touto metódou sú:
UnsupportedOperationException: Operácia pridania, ktorú tento zoznam nepodporuje.
ClassCastException: Zadaný prvok nie je možné pridať z dôvodu jeho triedy.
IllegalArgumentException: Zadaný prvok alebo niektorý aspekt nie je správny.
IndexOutOfBoundsException: Index je mimo rozsahu.
Nasledujúci program ukazuje ukážku metód add a addAll zo zoznamu.
import java.util.*; public class Main { public static void main(String[] args) { List strList = new ArrayList(); // Creating a list strList.add('Java'); strList.add('C++'); //print the list System.out.println('List after adding two elements:' + strList); List llist = new ArrayList(); // Create another list llist.add('Ruby'); llist.add('Python'); llist.add('C#'); // addAll method - add llist to strList strList.addAll(llist); System.out.println('List after addAll:'+ strList); } }
Výkon:
obsahuje
Prototyp: boolean obsahuje (Objekt o)
Parametre: o => Element, ktorý sa má vyhľadať v zozname.
Návratová hodnota: true => Ak zoznam obsahuje zadaný prvok.
Popis: Metóda ‘obsahuje‘ kontroluje, či je uvedený prvok v zozname, a vracia boolovskú hodnotu true, ak je prvok prítomný. V opačnom prípade vráti hodnotu false.
obsahujeVšetko
Prototyp: boolean containsAll (kolekcia c)
Parametre: c => Zbierka, ktorá sa má vyhľadať v zozname.
Návratová hodnota: true => Ak sa v zozname nachádzajú všetky prvky v zadanej kolekcii.
Popis: Metóda „containsAll“ kontroluje, či sa v zozname nachádzajú všetky prvky prítomné v zadanej kolekcii. Ak je k dispozícii, vráti skutočnú hodnotu a inak hodnotu false.
Nasledujúci program Java demonštruje použitie metód „contains“ a „containsAll“ v zozname.
import java.util.*; public class Main { public static void main(String[] args) { //define list of strings List list = new ArrayList(); //initialize list to strings list.add('Java'); list.add('Xml'); list.add('Python'); list.add('Ruby'); list.add('JavaScript'); //contains method demo if(list.contains('C')==true) System.out.println('Given list contains string 'C''); else if(list.contains('Java')==true) System.out.println('Given list contains string 'Java' but not string 'C''); //containsAll method demo List myList = new ArrayList(); myList.add('Ruby'); myList.add('Python'); if(list.containsAll(myList)==true) System.out.println('List contains strings 'Ruby' and 'Python''); } }
Výkon:
Daný zoznam obsahuje reťazec „Java“, ale nie reťazec „C“
Zoznam obsahuje reťazce „Ruby“ a „Python“
rovná sa
Prototyp: boolean equals (Objekt o)
Parametre: o => Objekt, ktorý sa má testovať na rovnosť.
Návratová hodnota: true => Ak sa daný objekt rovná zoznamu.
Popis: Táto metóda slúži na porovnanie daného objektu so zoznamom rovnosti. Ak je zadaným objektom zoznam, potom metóda vráti hodnotu true. O oboch zoznamoch sa hovorí, že sú rovnaké, len ak majú rovnakú veľkosť a zodpovedajúce prvky v týchto dvoch zoznamoch sú rovnaké a v rovnakom poradí.
Demonštrácia metódy rovnosti je uvedená nižšie:
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String[] args) { //define lists List first_list= new LinkedList(); List second_list = new LinkedList(); List third_list = new LinkedList(); //initialize lists with values for (int i=0;i<11;i++){ first_list.add(i); second_list.add(i); third_list.add(i*i); } //print each list System.out.println('First list: ' + first_list); System.out.println('Second list: ' + second_list); System.out.println('Third list: ' + third_list); //use equals method to check equality with each list to other if (first_list.equals(second_list) == true) System.out.println('
first_list and second_list are equal.
'); else System.out.println('first_list and second_list are not equal.
'); if(first_list.equals(third_list)) System.out.println('first_list and third_list are equal.
'); else System.out.println('first_list and third_list are not equal.
'); if(second_list.equals(third_list)) System.out.println('second_list and third_list are equal.
'); else System.out.println('second_list and third_list are not equal.
'); } }
Výkon:
Získajte
Prototyp: Získanie objektu (int index)
Parametre: index => Poloha, v ktorej sa má prvok vrátiť.
Návratová hodnota: object => Element na určenej pozícii.
Popis: Metóda get () vráti prvok na danej pozícii.
Táto metóda hodí „indexOutOfBoundsException“, ak je zadaný index mimo rozsahu zoznamu.
Nastaviť
Prototyp: Sada objektov (int index, Object element)
Parametre: index => Poloha, na ktorú sa má nastaviť nový prvok.
element => Nový prvok, ktorý sa má umiestniť na pozíciu danú indexom.
Návratová hodnota: Objekt => Element, ktorý bol nahradený
Popis: Metóda set () nahradí prvok v danom indexe inou hodnotou danou prvkom.
Metóda môže spôsobiť nasledujúce výnimky:
UnsupportedOperationException: Zoznam nepodporuje operáciu nastavenia.
ClassCastException: Operáciu nie je možné vykonať z dôvodu triedy prvku
IllegalArgumentException: Argument alebo niektorá jeho stránka je nezákonná
IndexOutOfBoundsException: Index je mimo rozsahu.
Nasledujúci program zobrazuje príklad metódy get () a set ().
import java.util.*; public class Main { public static void main(String[] args) { //define list List listA = new ArrayList(); listA.add('Java'); listA.add('C++'); listA.add('Python'); //access list elements using index with get () method System.out.println('Element at index 0:' + listA.get(0)); System.out.println('Element at index 1:' + listA.get(1)); System.out.println('Element at index 2:' + listA.get(2)); //set element at index 1 to Ruby listA.set(1,'Ruby'); System.out.println('Element at index 1 changed to :' + listA.get(1) ); } }
Výkon:
hashCode
Prototyp: int hashCode ()
Parametre: NIL
Návratová hodnota: int => hashCode zoznamu
Popis: Metóda ‘hashCode ()‘ vracia hashCode zo zoznamu, čo je celočíselná hodnota.
Príklad:
import java.util.*; public class Main { public static void main(String[] args) { // Initializing a list of type Linkedlist List mylist = new LinkedList(); mylist.add(1); mylist.add(3); mylist.add(5); mylist.add(7); //print the list System.out.println('The list:' + mylist); //use hashCode() method to find hashcode of list int hash = mylist.hashCode(); System.out.println('Hashcode for list:' + hash); } }
Výkon:
je prázdny
Prototyp: boolean isEmpty ()
Parametre: NIL
Návratová hodnota: true => Zoznam je prázdny
Popis: Metóda „isEmpty ()“ kontroluje, či je zoznam prázdny. Metóda IsEmpty sa používa na kontrolu, či zoznam obsahuje nejaké prvky, skôr ako ich začnete spracovávať.
indexOf
Prototyp: int indexOf (Objekt o)
Parametre: o => prvok, ktorý sa má vyhľadať v zozname
Návratová hodnota: int => index alebo pozícia prvého výskytu daného prvku v zozname. Vráti hodnotu -1, ak prvok nie je prítomný.
Popis: Metóda „indexOf ()“ vráti index prvého výskytu daného prvku o v zozname. Ak sa element nenájde, vráti -1.
lastIndexOf
Prototyp: int lastIndexOf (objekt o)
Parametre: o => Objekt, ktorého index sa má prehľadať
Návratová hodnota: int => Index posledného výskytu daného prvku v zozname, inak -1.
Popis: Metóda „lastIndexOf ()“ vráti index posledného výskytu prvku o v zozname. Ak sa prvok nenájde, metóda vráti -1.
Nižšie uvedený program Java demonštruje použitie metód indexOf a lastIndexOf v zozname.
import java.util.*; public class Main { public static void main(String[] args) { // define an integer array List intList = new ArrayList(5); //add elements to the list intList.add(10); intList.add(20); intList.add(30); intList.add(10); intList.add(20); //print the list System.out.println('The list of integers:' + intList); // Use indexOf() and lastIndexOf() methods of list to find first and last index System.out.println('first index of 20:' + intList.indexOf(20)); System.out.println('last index of 10:' + intList.lastIndexOf(10)); } }
Výkon:
odstrániť
Prototyp: Odstrániť objekt (int index)
Parametre: index => Index alebo pozícia v zozname, z ktorého sa má prvok odstrániť
Návratová hodnota: Objekt => Element bol odstránený
Popis: Metóda 'remove ()' odstráni prvok na danom mieste zo zoznamu. Po odstránení sa prvky vedľa odstráneného prvku posunú doľava.
Táto metóda môže spôsobiť nasledujúce výnimky:
UnsupportedOperationException: Zoznam nie je podporovaný na odstránenie.
IndexOutOfBoundsException: Zadaný index je mimo rozsahu
odstrániť
Prototyp: boolean remove (Objekt o)
Parametre: o => Element, ktorý sa má zo zoznamu odstrániť
Návratová hodnota: true => Element je úspešne odstránený.
Popis: Táto preťažená verzia metódy remove () odstráni prvý výskyt daného prvku o zo zoznamu. Ak daný prvok nie je v zozname, zostáva nezmenený.
Táto metóda môže vyvolať nasledujúcu výnimku:
UnsupportedOperationException: Zoznam nie je podporovaný na odstránenie.
odobrať všetky
Prototyp: boolean removeAll (kolekcia c)
Parametre: c => Kolekcia, ktorá obsahuje prvky, ktoré sú odstránené zo zoznamu.
Návratová hodnota: true => Ak je volanie metódy úspešné a všetky prvky uvedené v kolekcii c sú odstránené zo zoznamu.
Popis: Metóda „removeAll ()“ sa používa na odstránenie všetkých prvkov zo zoznamu, ktoré sú uvedené v kolekcii c, ktoré sa odovzdávajú ako argument.
Táto metóda môže vyvolať nasledujúcu výnimku:
UnsupportedOperationException: zoznam nepodporuje removeAll.
Pozrime sa na príklad metód remove a removeAll.
import java.util.*; public class Main { public static void main(String[] args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); // Removes element from index 1 oddList.remove(1); System.out.println('Oddlist after removing element at index 1:' + oddList); //removeAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.removeAll(c1); System.out.println('Oddlist after removing elements {1,5,11}}:' + oddList); } }
Výkon:
keepAll
Prototyp: boolean keepAll (kolekcia c)
Parametre: c => Kolekcia obsahujúca prvky, ktoré by sa mali v zozname zachovať.
Návratová hodnota: true => Ak volanie metódy zmenilo zoznam.
Popis: Táto metóda odstráni zo zoznamu všetky prvky okrem tých, ktoré sú obsiahnuté v kolekcii c. Inými slovami, táto metóda zachováva všetky prvky v zozname, ktoré sa nachádzajú v kolekcii ca odstraňuje ďalšie prvky.
Táto metóda môže vyvolať nasledujúcu výnimku:
UnsupportedOperationException: keepAll zoznam nepodporuje.
import java.util.*; public class Main { public static void main(String[] args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); //retainAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.retainAll(c1); System.out.println('Oddlist after call to retainAll (1,5,11):' + oddList); } }
Výkon:
podzoznam
Prototyp: Zoznam sublistov (int fromIndex, int toIndex)
Parametre: fromIndex => Dolný index zoznamu (vrátane)
toIndex => Vyšší index zoznamu (exkluzívny)
Návratová hodnota: Zoznam => Podzoznam daného zoznamu
Popis: Metóda sublist () vracia čiastočné zobrazenie zoznamu, známe aj ako sublist z „fromIndex“ do „toIndex“. Vrátený podzoznam predstavuje iba pohľad na nadradený zoznam, a teda všetky zmeny vykonané v niektorom zo zoznamov sa prejavia všade.
Podobne všetky operácie v zozname fungujú aj na podskupine.
Metóda môže vyvolať nasledujúcu výnimku:
IndexOutOfBoundsException: Neplatná hodnota indexu.
Nižšie je uvedený príklad programu pre metódu sublistovania.
ako otvoriť súbor .key v systéme Windows 10
import java.util.*; public class Main { public static void main(String[] args) { // define a string list List strList = new ArrayList(5); //add elements to the list strList.add('Java'); strList.add('Tutorials'); strList.add('Collection'); strList.add('Framework'); strList.add('Series'); //print the original list System.out.println('The original list=>strList: ' + strList); //define another list List subList = new ArrayList(); // take a sublist of elements from 2 to 4 from strList subList = strList.subList(2, 4); //print the sublist System.out.println('The sublist of strList:' + subList); } }
Výkon:
zoznam triedenia
Prototyp: void sort (komparátor c)
Parametre: c => Komparátor, na základe ktorého je zoznam zoradený.
Návratová hodnota: NIL
Popis: Na zoradenie zoznamu sa používa metóda ‘sort ()”. Táto metóda využíva na triedenie zoznamu zadaný komparátor.
Pozrime sa na príklad metódy triedenia . Porovnali sme to s metódou Collections.sort, ktorá triedi prvky v prirodzenom poradí. Výstupom programu je usporiadaný zoznam.
import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String[] args) { //define list List intArray = new ArrayList(); Random random = new Random(); //populate the list with random numbers <20 for (int i = 0; i {return (o2-o1);}); //comparator to sort in reverse System.out.println('Reverse List sorted using comparator:
'+intArray); } }
Výkon:
toArray
Prototyp: Objekt [] toArray ()
Parametre: NIL
Návratová hodnota: Objekt [] => Reprezentácia zoznamu v poli
Popis: Metóda toArray () vráti reprezentáciu zoznamu v správnom poradí.
toArray
Prototyp: Objekt [] toArray (Objekt [] a)
Parametre: a => Typ poľa, ktorý sa má zhodovať s typmi prvkov zoznamu pri konverzii zoznamu na pole.
Návratová hodnota: Objekt [] => Reprezentácia zoznamu v poli.
Popis: Toto preťaženie metódy toArray () vráti pole obsahujúce prvky v zozname, ktoré majú rovnaký runtime typ ako pole a.
Táto metóda môže vyvolať nasledujúcu výnimku:
ArrayStoreException: Runtime typ každého prvku v zozname nie je podtypom runtime typu každého prvku v tomto zozname.
Nasleduje príklad implementácie metódy toArray.
import java.util.*; public class Main { public static void main(String[] args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('Size of the colorsList: ' + colorsList.size()); // Print the colors in the list System.out.println('Contents of colorsList:'); for (String value : colorsList){ System.out.print(value + ' '); } // Create an array from the list using toArray method String colorsArray[] = new String[colorsList.size()]; colorsArray = colorsList.toArray(colorsArray); // Display the contents of the array System.out.println('
Printing elements of colorsArray:' + Arrays.toString(colorsArray)); } }
Výkon:
Iterátor
Prototyp: Iterátor iterátor ()
Parametre: NIL
Návratová hodnota: Iterator => Iterátor na iteráciu prvkov zoznamu
Popis: Táto metóda vráti iterátor, ktorý iteruje nad prvkami v zozname.
Program Java na demonštráciu použitia iterátora.
import java.util.*; public class Main { public static void main(String[] args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('ColorList using iterator:'); //define iterator for colorsList Iterator iterator = colorsList.iterator(); //iterate through colorsList using iterator and print each item while(iterator.hasNext()){ System.out.print(iterator.next() + ' '); } } }
Výkon:
listIterator
Prototyp: ListIterator listIterator ()
Parametre: NIL
Návratová hodnota: ListIterator => Listiterátor prvkov v zozname.
Popis: Metóda listIterator () vráti objekt ListIterator prvkov v zozname. Tento iterátor začína od začiatku zoznamu, tj. Index 0.
listIterator
Prototyp: ListIterator listIterator (int index)
Parametre: index => Poloha, na ktorej začína listIterator.
Návratová hodnota: ListIterator => Objekt ListIterator pri zadanom indexe v zozname.
Popis: Preťaženie metódy listIterator () vráti listIterator, ktorý začína na danej pozícii v zozname. Daný index naznačuje, že to bude prvý prvok, ktorý sa vráti prvým volaním metódy nextElement () v zozname ListIterator.
Metóda môže vyvolať IndexOutOfBoundsException pre neplatnú hodnotu indexu.
Nasledujúci príklad demonštruje použitie listIterátora.
import java.util.*; public class Main { public static void main(String[] args) { //define list & add items to list List nameList = new LinkedList(); nameList.add('Java'); nameList.add('C++'); nameList.add('Python'); // get listIterator for the list ListIterator namesIterator = nameList.listIterator(); // Traverse list using listiterator and print each item System.out.println('Contents of list using listIterator:'); while(namesIterator.hasNext()){ System.out.print(namesIterator.next() + ' '); } } }
Výkon:
O zozname ListIterator sa budeme podrobnejšie zaoberať neskôr.
Poďme si teraz predstaviť niektoré rôzne operácie, ktoré je možné vykonať v zoznamoch, ale metódy, ktoré nie sú uvedené v rozhraní zoznamu.
Kopírovať zoznam do Javy
Na kopírovanie prvkov jedného zoznamu do iného zoznamu musíte použiť metódu copy (), ktorú poskytuje rámec Collection.
Metóda Collections.copy () skopíruje všetky prvky zoznamu poskytnutého ako druhý argument do zoznamu poskytnutého ako prvý argument. Upozorňujeme, že zoznam, do ktorého sa kopíruje obsah iného zoznamu, by mal byť dostatočne veľký, aby vyhovoval kopírovaným prvkom.
Ak zoznam nie je dostatočne veľký, metóda kopírovania hodí „indexOutOfBoundsEexception“.
Nasledujúci program kopíruje obsah jedného zoznamu do druhého.
import java.util.*; public class Main { public static void main(String[] args) { //create first ArrayList object List aList_1 = new ArrayList(); //Add elements to first ArrayList aList_1.add('R'); aList_1.add('G'); aList_1.add('B'); //print the List System.out.println('The first list:' + aList_1); //create second ArrayList object List aList_2 = new ArrayList(); //Add elements to second Arraylist aList_2.add('Red'); aList_2.add('Green'); aList_2.add('Blue'); aList_2.add('Yellow'); aList_2.add('Brown'); System.out.println('The second list: ' + aList_2); //use Collections.copy() method to copy elements of first list to second list. Collections.copy(aList_2,aList_1); //print the resultant second Arraylist System.out.println('
The second list after copying first list to second list: ' + aList_2); } }
Výkon:
Odstrániť duplikáty zo zoznamu v prostredí Java
Daný zoznam môže, ale nemusí mať opakujúce sa prvky alebo duplikáty. Ak má zoznam, s ktorým pracujete, duplicitné prvky a chcete v ňom všetky odlišné prvky, existujú dva spôsoby odstránenia duplikátov zo zoznamu podporovaného v prostredí Java.
Používanie toku Java 8
Prvý spôsob odstránenia duplikátov zo zoznamu je pomocou metódy different () poskytnutej prúdom Java 8. Tu zoznam obsahujúci duplikáty vyvolá metódu stream () .distinct a potom sa návratová hodnota prevedie na nový zoznam, ktorý bude mať iba odlišné prvky.
Nasledujúci program demonštruje použitie metódy different ().
import java.util.*; import java.util.stream.Collectors; class Main { public static void main(String[] args) { // original list List intlist = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5,6,5,3,4)); // Print the list System.out.println('Original ArrayList: ' + intlist); // using distinct() method of Java 8 stream remove duplicates from original List //and generate a new list without duplicates List distinct_list = intlist.stream().distinct() .collect(Collectors.toList()); // Print the new list System.out.println('ArrayList after removing duplicates: ' + distinct_list); } }
Výkon:
Použitie prístupu Iterator
Odstránenie duplikátov zo zoznamu pomocou iterátora je zdĺhavý a primitívny prístup. Pri tomto prístupe musíte prechádzať zoznamom a vložiť prvý výskyt každého prvku do nového zoznamu. Každý nasledujúci prvok je skontrolovaný, či ide o duplikát.
Program uvedený nižšie to dosahuje.
import java.util.*; public class Main { public static void main(String args[]) { // create original list ArrayList aList = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 5, 3, 4)); // Print the original list System.out.println('Original List: '+ aList); // Create a new list ArrayList new_List = new ArrayList(); // Traverse through the original list to remove duplicates for (Integer element : aList) { // check if element is present in new_List, else add it if (!new_List.contains(element)) { new_List.add(element); } } // Print the new list without duplicates System.out.println('List after removing duplicates: '+ new_List); } }
Výkon:
často kladené otázky
Otázka 1) Čo je metóda get v zozname v Jave?
Odpoveď: Na získanie konkrétneho prvku v zozname na základe indexu sa používa metóda Get. Zadáte požadovaný index do metódy get a metóda get vráti hodnotu prvku v danom indexe.
Otázka 2) Aká je metóda toArray v Jave?
Odpoveď: Metóda toArray () sa používa na získanie maticovej reprezentácie zoznamu.
Otázka č. 3) Ako triedite zoznam v Jave?
Odpoveď: V prostredí Java je možné zoznam triediť pomocou metódy triedenia zoznamu. Svoje vlastné kritériá triedenia môžete zadať pomocou porovnávacieho rozhrania, ktoré sa odovzdá metóde triedenia ako parameter.
Môžete tiež použiť Zbierky. Metóda triedenia na zoradenie zoznamu. Táto metóda triedi zoznam podľa prirodzeného usporiadania.
Otázka č. 4) Čo je Arrays.asList () v Jave?
Odpoveď: Metóda „asList“ poľa vracia zoznam prvkov podporovaných poľom.
Záver
V tejto príručke sme sa naučili všetky metódy, ktoré poskytuje zoznam. Zoznam Java poskytuje rôzne metódy, pomocou ktorých môžete manipulovať a spracovávať zoznamy vrátane vyhľadávania, triedenia atď. Každú metódu sme vysvetlili na príslušných príkladoch programovania.
V našom nadchádzajúcom tutoriáli si podrobne rozoberieme ListIterator.
=> Preskúmajte tu jednoduchú sériu školení Java.
Odporúčané čítanie
- Zoznam Java - Ako vytvoriť, inicializovať a používať zoznam v jazyku Java
- Skrytý zoznam súborov a ďalších zbierok v Jave
- Výukový program pre pokročilý zoznam Pythonu (zoradenie, obrátenie, indexovanie, kopírovanie, pripojenie, súčet)
- Zoznam Pythonu - vytváranie, prístup, rozdeľovanie, pridávanie alebo mazanie prvkov
- Vlákna Java s metódami a životným cyklom
- Odstrániť / Odstrániť prvok z poľa v Jave
- Výukový program pre Java String Metódy reťazca Java s príkladmi
- Zoznam predvolených adries IP smerovačov pre bežné značky bezdrôtových smerovačov