java list methods sort list
Tento výukový program vysvětluje různé metody seznamu Java, jako je seznam řazení, seznam obsahuje, přidání seznamu, odebrání seznamu, velikost seznamu, AddAll, RemoveAll, obrácení seznamu a další:
Rozhraní seznamu jsme již obecně probrali v našem předchozím kurzu. Rozhraní seznamu má různé metody, které se používají k manipulaci s obsahem seznamu. Pomocí těchto metod můžete vložit / odstranit, třídit a hledat prvky v seznamu.
V tomto kurzu probereme všechny metody, které poskytuje rozhraní seznamu.
=> Chcete-li vidět A-Z výukových kurzů Java zde, podívejte se sem.
Aby bylo možné iterovat seznamem, rozhraní seznamu využívá iterátor seznamu. Tento iterátor seznamu vychází z rozhraní iterátoru. V našem dalším kurzu prozkoumáme více o iterátoru seznamu.
Co se naučíte:
Seznam metod v Javě
Následující tabulka ukazuje různé funkce poskytované rozhraním seznamu v Javě.
Metoda seznamu | Metoda Prototyp | Popis |
---|---|---|
obsahuje | boolean obsahuje (Objekt o) | Zkontroluje, zda je zadaný prvek v seznamu, a vrátí hodnotu true, pokud je k dispozici |
velikost | int velikost () | Vrátí velikost seznamu, tj. Počet prvků v seznamu nebo délku seznamu. |
Průhledná | prázdnota clear () | Vymaže seznam odstraněním všech prvků v seznamu |
přidat | void add (int index, Object element) | Přidá daný prvek do seznamu v daném indexu |
boolean add (Objekt o) | Přidá daný prvek na konec seznamu | |
přidat vše | boolean addAll (kolekce c) | Připojí celou danou kolekci na konec seznamu |
boolean addAll (int index, kolekce c) | Vloží danou kolekci (všechny prvky) do seznamu v zadaném indexu | |
obsahuje vše | boolean containsAll (kolekce c) | Zkontroluje, zda je zadaná kolekce (všechny prvky) součástí seznamu. Vrátí hodnotu true ano. |
rovná se | boolean se rovná (objekt o) | Porovná zadaný objekt pro rovnost s prvky seznamu |
Dostat | Získání objektu (int index) | Vrátí prvek v seznamu určeném indexem |
hashCode | int hashCode () | Vrátí hodnotu hash kódu ze seznamu. |
indexOf` | int indexOf (Objekt o) | Najde první výskyt vstupního prvku a vrátí jeho index |
je prázdný | boolean isEmpty () | Zkontroluje, zda je seznam prázdný |
lastIndexOf | int lastIndexOf (Objekt o) | Vyhledá poslední výskyt vstupního prvku v seznamu a vrátí jeho index |
odstranit | Odebrání objektu (int index) | Odebere prvek na zadaném indexu |
boolean remove (Objekt o) | Odebere prvek při jeho prvním výskytu v seznamu | |
odebrat všechny | boolean removeAll (kolekce c) | Odebere ze seznamu všechny prvky obsažené v zadané kolekci |
zachovat vše | boolean keepAll (kolekce c) | Naproti removeAll. Zachová prvek uvedený v kolekci vstupů v seznamu. |
Soubor | Sada objektů (int index, Object element) | Změní prvek na zadaném indexu nastavením na zadanou hodnotu |
subList | Seznam sublistů (int fromIndex, int toIndex) | Vrátí sublist prvků mezi fromIndex (včetně) a toIndex (exkluzivní). |
třídit | void sort (komparátor c) | Seřadí prvek seznamu podle zadaného komparátoru a získá uspořádaný seznam |
toArray | Objekt () toArray () | Vrátí reprezentaci pole seznamu |
Objekt () toArray (Objekt () a) | Vrátí reprezentaci pole, jejíž běhový typ je stejný jako zadaný argument pole | |
iterátor | Iterátor iterátor () | Vrátí Iterátor pro seznam |
listIterator | ListIterator listIterator () | Vrátí ListIterator pro seznam |
ListIterator listIterator (int index) | Vrátí ListIterator počínaje zadaným indexem v seznamu |
Dále budeme diskutovat o těchto funkcích spolu s jejich příklady.
velikost
Prototyp: int velikost ()
Parametry: NULA
Návratová hodnota: int => Počet prvků v seznamu nebo jinými slovy délka seznamu.
Popis: Funkce size () vrací počet prvků nebo velikost seznamu. To lze také jednoduše nazvat délkou.
Průhledná
Prototyp: prázdnota clear ()
Parametry: NULA
Návratová hodnota: Žádná návratová hodnota
Popis: Vymaže seznam odstraněním všech prvků seznamu. Hodí „UnSupportedException“, pokud operace není seznamem podporována.
Následující příklad předvede metodu 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ýstup:
přidat
Prototyp: void add (int index, Object element)
Parametry: index - pozice, na kterou má být prvek přidán.
Prvek - prvek, který má být přidán
Návratová hodnota: prázdnota
Popis: Přidá daný prvek do seznamu v daném indexu. Následující prvky jsou posunuty doprava.
java 8 rozhovor otázky a odpovědi
Jsou vyvolány následující výjimky:
IndexOutOfBoundsException: Index seznamu je mimo rozsah
UnsupportedOperationException: Operace přidání není seznamem podporována.
ClassCastException: Prvek nelze přidat do seznamu z důvodu třídy zadaných prvků.
IllegalArgumentException: Zadaný prvek nebo nějaký aspekt není správný.
Přidat
Prototyp: boolean add (Objekt o)
Parametry: o => Prvek, který má být přidán do seznamu
Návratová hodnota: true => Prvek byl úspěšně přidán
False => Přidat neúspěšné
Popis: Tato metoda přidá daný prvek na konec seznamu.
Tato operace může vyvolat následující výjimky.
UnsupportedOperationException: Operace přidání není v tomto seznamu podporována.
ClassCastException: Určený prvek nelze přidat z důvodu jeho třídy
IllegalArgumentException: Zadaný prvek nebo nějaký aspekt není správný.
přidat vše
Prototyp: boolean addAll (kolekce c)
Parametry: c => Sbírka, jejíž prvky mají být přidány do seznamu
Návratová hodnota: true => Úspěšné provedení metody
Popis: Metoda addAll přebírá všechny prvky z kolekce ca připojí je na konec seznamu udržováním pořadí, které bylo nastaveno.
Tato metoda vykazuje nespecifikované chování, pokud je kolekce během operace změněna.
Metoda vyvolá následující výjimky:
UnsupportedOperationException: Operace přidání není v tomto seznamu podporována.
ClassCastException: Určený prvek nelze přidat z důvodu jeho třídy.
IllegalArgumentException: Zadaný prvek nebo nějaký aspekt není správný.
přidat vše
Prototyp: boolean addAll (int index, kolekce c)
Parametry: index => Poloha, na kterou má být kolekce vložena.
C => Sbírka, která má být vložena do seznamu.
Návratová hodnota: true => Pokud jsou prvky kolekce úspěšně přidány do seznamu.
Popis: Metoda addAll vloží všechny prvky v zadané kolekci do seznamu v zadaném indexu. Následující prvky jsou poté posunuty doprava. Stejně jako v případě předchozího přetížení addAll je chování nespecifikováno, pokud je kolekce změněna, když probíhá operace.
Výjimky vyvolané touto metodou jsou:
UnsupportedOperationException: Operace přidání není v tomto seznamu podporována.
ClassCastException: Určený prvek nelze přidat z důvodu jeho třídy.
IllegalArgumentException: Zadaný prvek nebo nějaký aspekt není správný.
IndexOutOfBoundsException: Index mimo rozsah.
Níže uvedený program ukazuje demonstraci metod add a addAll ze seznamu.
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ýstup:
obsahuje
Prototyp: boolean obsahuje (Objekt o)
Parametry: o => Prvek, který má být prohledán v seznamu.
Návratová hodnota: true => Pokud seznam obsahuje zadaný prvek.
Popis: Metoda „obsahuje“ zkontroluje, zda je zadaný prvek v seznamu, a vrátí logickou hodnotu true, pokud je prvek přítomen. V opačném případě vrátí hodnotu false.
obsahuje vše
Prototyp: boolean containsAll (kolekce c)
Parametry: c => Sbírka k prohledání v seznamu.
Návratová hodnota: true => Pokud jsou v seznamu všechny prvky v určené kolekci.
Popis: Metoda „containsAll“ kontroluje, zda jsou v seznamu přítomny všechny prvky přítomné v určené kolekci. Pokud je k dispozici, vrací skutečnou hodnotu a v opačném případě hodnotu false.
Následující program Java demonstruje použití metod „contains“ a „containsAll“ v seznamu.
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ýstup:
Daný seznam obsahuje řetězec „Java“, ale ne řetězec „C“
Seznam obsahuje řetězce „Ruby“ a „Python“
rovná se
Prototyp: boolean se rovná (objekt o)
Parametry: o => Objekt, který má být testován na rovnost.
Návratová hodnota: true => Pokud se daný objekt rovná seznamu.
Popis: Tato metoda se používá k porovnání daného objektu se seznamem rovnosti. Pokud je zadaným objektem seznam, vrátí metoda true. O obou seznamech se říká, že jsou stejné právě tehdy, pokud mají stejnou velikost, a odpovídající prvky v těchto dvou seznamech jsou stejné a ve stejném pořadí.
Demonstrace metody rovnosti je uvedena níže:
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ýstup:
Dostat
Prototyp: Získání objektu (int index)
Parametry: index => Poloha, ve které má být prvek vrácen.
Návratová hodnota: object => Element na zadané pozici.
Popis: Metoda get () vrací prvek na dané pozici.
Tato metoda vyvolá „indexOutOfBoundsException“, pokud je zadaný index mimo rozsah seznamu.
Soubor
Prototyp: Sada objektů (int index, Object element)
Parametry: index => Poloha, na kterou má být nový prvek nastaven.
element => Nový prvek, který má být umístěn na pozici danou indexem.
Návratová hodnota: Object => Prvek, který byl nahrazen
Popis: Metoda set () nahradí prvek v daném indexu jinou hodnotou danou prvkem.
Metoda může vyvolat následující výjimky:
UnsupportedOperationException: Operace nastavení není seznamem podporována.
ClassCastException: Operaci nelze provést z důvodu třídy prvku
IllegalArgumentException: Argument nebo některý jeho aspekt je nezákonný
IndexOutOfBoundsException: Index mimo rozsah.
Následující program ukazuje příklad metody 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ýstup:
hashCode
Prototyp: int hashCode ()
Parametry: NULA
Návratová hodnota: int => hashCode seznamu
Popis: Metoda ‚hashCode () 'vrací hashCode seznamu, což je celočíselná hodnota.
Pří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ýstup:
je prázdný
Prototyp: boolean isEmpty ()
Parametry: NULA
Návratová hodnota: true => Seznam je prázdný
Popis: Metoda „isEmpty ()“ kontroluje, zda je seznam prázdný. Metoda IsEmpty se používá ke kontrole, zda seznam obsahuje nějaké prvky, než začnete tyto prvky zpracovávat.
indexOf
Prototyp: int indexOf (Objekt o)
Parametry: o => prvek, který se má v seznamu vyhledat
Návratová hodnota: int => index nebo poloha prvního výskytu daného prvku v seznamu. Vrátí -1, pokud prvek není k dispozici.
Popis: Metoda ‚indexOf () 'vrací index prvního výskytu daného prvku o v seznamu. Pokud prvek není nalezen, vrátí hodnotu -1.
lastIndexOf
Prototyp: int lastIndexOf (Objekt o)
Parametry: o => Objekt, jehož index má být prohledán
Návratová hodnota: int => Index posledního výskytu daného prvku v seznamu, jinak -1.
Popis: Metoda ‚lastIndexOf () 'vrací index posledního výskytu prvku o v seznamu. Pokud prvek nebyl nalezen, metoda vrátí -1.
Níže uvedený program Java ukazuje použití metod indexOf a lastIndexOf v seznamu.
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ýstup:
odstranit
Prototyp: Odebrání objektu (int index)
Parametry: index => Index nebo pozice v seznamu, ze kterého má být prvek odebrán
Návratová hodnota: Objekt => Prvek odstraněn
Popis: Metoda ‚remove () 'odstraní prvek na dané pozici ze seznamu. Po odstranění se prvky vedle odstraněného prvku posunou doleva.
Tato metoda může vyvolat následující výjimky:
UnsupportedOperationException: Odebrání seznam nepodporuje.
IndexOutOfBoundsException: Zadaný index je mimo rozsah
odstranit
Prototyp: boolean remove (Objekt o)
nejlepší mp3 přehrávač downloader pro Android
Parametry: o => Prvek, který má být odstraněn ze seznamu
Návratová hodnota: true => Prvek byl úspěšně odebrán.
Popis: Tato přetížená verze metody remove () odstraní první výskyt daného prvku o ze seznamu. Pokud daný prvek není v seznamu, zůstane nezměněn.
Tato metoda může vyvolat následující výjimku:
UnsupportedOperationException: Odebrání seznam nepodporuje.
odebrat všechny
Prototyp: boolean removeAll (kolekce c)
Parametry: c => Kolekce obsahující prvky, které jsou odebrány ze seznamu.
Návratová hodnota: true => Pokud je volání metody úspěšné a všechny prvky uvedené v kolekci c jsou odebrány ze seznamu.
Popis: Metoda ‚removeAll () 'se používá k odebrání všech prvků ze seznamu, které jsou uvedeny v kolekci c, která je předána jako argument.
Tato metoda může vyvolat následující výjimku:
UnsupportedOperationException: removeAll není seznamem podporován.
Podívejme se na příklad metod 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ýstup:
zachovat vše
Prototyp: boolean keepAll (kolekce c)
Parametry: c => Kolekce obsahující prvky, které by měly být zachovány v seznamu.
Návratová hodnota: true => Pokud volání metody změnilo seznam.
Popis: Tato metoda odstraní všechny prvky ze seznamu kromě těch, které jsou přítomny v kolekci c. Jinými slovy, tato metoda zachovává všechny prvky v seznamu, které jsou přítomny v kolekci ca odstraní další prvky.
Tato metoda může vyvolat následující výjimku:
UnsupportedOperationException: keepAll není seznamem podporován.
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ýstup:
subList
Prototyp: Seznam sublistů (int fromIndex, int toIndex)
Parametry: fromIndex => Dolní index seznamu (včetně)
toIndex => Vyšší index seznamu (exkluzivní)
Návratová hodnota: List => Dílčí seznam daného seznamu
Popis: Metoda sublist () vrací částečné zobrazení seznamu, známé také jako sublist z „fromIndex“ do „toIndex“. Vrácený podseznam je pouze pohledem na nadřazený seznam, a proto se všechny změny provedené v kterémkoli seznamu projeví všude.
Podobně všechny operace seznamu fungují také na podřízeném seznamu.
Metoda může vyvolat následující výjimku:
IndexOutOfBoundsException: Neplatná hodnota toIndex.
Níže je uveden příklad programu pro metodu sublistů.
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ýstup:
třídit seznam
Prototyp: void sort (komparátor c)
Parametry: c => Komparátor, na jehož základě je seznam seřazen.
Návratová hodnota: NULA
Popis: K třídění seznamu se používá metoda ‚sort () '. Metoda využívá k seřazení seznamu zadaný komparátor.
Podívejme se na příklad metody řazení . Porovnali jsme to s metodou Collections.sort, která třídí prvky v přirozeném pořadí. Výstupem programu je uspořádaný seznam.
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ýstup:
toArray
Prototyp: Objekt () toArray ()
Parametry: NULA
Návratová hodnota: Object () => Reprezentace seznamu v poli
Popis: Metoda toArray () vrátí reprezentaci seznamu ve správném pořadí.
toArray
Prototyp: Objekt () toArray (Objekt () a)
Parametry: a => Typ pole, který má být porovnán s typy prvků seznamu při převodu seznamu na pole.
Návratová hodnota: Object () => Reprezentace seznamu v poli.
Popis: Toto přetížení metody toArray () vrací pole obsahující prvky v seznamu, které mají stejný runtime typ jako pole a.
Tato metoda může vyvolat následující výjimku:
ArrayStoreException: Typ modulu runtime každého prvku v seznamu není podtypem typu modulu runtime každého prvku v tomto seznamu.
Následuje příklad implementace metody 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ýstup:
Iterátor
Prototyp: Iterátor iterátor ()
Parametry: NULA
Návratová hodnota: Iterator => Iterátor pro iteraci nad prvky seznamu
Popis: Tato metoda vrací iterátor, který iteruje nad prvky v seznamu.
Program Java k demonstraci pomocí iterátoru.
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ýstup:
listIterator
Prototyp: ListIterator listIterator ()
Parametry: NULA
Návratová hodnota: ListIterator => Listiterátor prvků v seznamu.
Popis: Metoda listIterator () vrací objekt ListIterator prvků v seznamu. Tento iterátor začíná od začátku seznamu, tj. Index 0.
listIterator
Prototyp: ListIterator listIterator (int index)
Parametry: index => Poloha, na které začíná listIterator.
Návratová hodnota: ListIterator => Objekt ListIterator v zadaném indexu v seznamu.
Popis: Přetížení metody listIterator () vrací listIterator, který začíná na dané pozici v seznamu. Daný index označuje, že to bude první prvek, který bude vrácen prvním voláním metody nextElement () ListIterator.
Metoda může vyvolat IndexOutOfBoundsException neplatnou hodnotu indexu.
Následující příklad ukazuje použití listIterátoru.
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ýstup:
ListIterator podrobně probereme později.
Pojďme se nyní zabývat některými různými operacemi, které lze se seznamy provádět, ale metody, které nejsou k dispozici v rozhraní seznamu.
Kopírovat seznam v Javě
Pro kopírování prvků jednoho seznamu do jiného seznamu musíte použít metodu copy () poskytovanou frameworkem Collections.
Metoda Collections.copy () zkopíruje všechny prvky seznamu uvedeného jako druhý argument do seznamu uvedeného jako první argument. Všimněte si, že seznam, do kterého se kopíruje obsah jiného seznamu, by měl být dostatečně velký, aby vyhovoval kopírovaným prvkům.
Pokud seznam není dostatečně velký, hodí metoda kopírování „indexOutOfBoundsEexception“.
Následující program zkopíruje obsah jednoho seznamu 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ýstup:
Odebrat duplikáty ze seznamu v Javě
Daný seznam může, ale nemusí mít opakující se prvky nebo duplikáty. Pokud má seznam, se kterým pracujete, duplicitní prvky a chcete v něm všechny odlišné prvky, existují dva způsoby, jak odstranit duplikáty ze seznamu podporovaného v Javě.
Používání proudu Java 8
První metodou k odstranění duplikátů ze seznamu je použití metody different () poskytované streamem Java 8. Zde seznam obsahující duplikáty vyvolá metodu stream () .distinct a poté se návratová hodnota převede na nový seznam, který bude mít pouze odlišné prvky.
Následující program ukazuje použití metody 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ýstup:
Použití přístupu Iterator
Odstranění duplikátů ze seznamu pomocí iterátoru je zdlouhavý a primitivní přístup. V tomto přístupu musíte procházet seznamem a umístit první výskyt každého prvku do nového seznamu. Každý následující prvek je zkontrolován, zda se jedná o duplikát.
Níže uvedeného programu toho bylo dosaženo.
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ýstup:
Často kladené otázky
Otázka č. 1) Co je metoda get v seznamu v Javě?
Odpovědět: Metoda Get seznamu se používá k načtení konkrétního prvku v seznamu na základě indexu. Předáte požadovaný index metodě get a metoda get vrátí hodnotu prvku v tomto indexu.
Otázka 2) Co je metoda toArray v Javě?
nejlepší rámec testování jednotek pro Java
Odpovědět: Metoda toArray () se používá k získání maticové reprezentace seznamu.
Otázka č. 3) Jak seřadí seznam v Javě?
Odpovědět: V Javě lze seznam třídit pomocí metody řazení seznamu. Můžete předat svá vlastní kritéria řazení pomocí rozhraní komparátoru, které se předá metodě řazení jako parametr.
Můžete také použít sbírky. Metoda třídění slouží k seřazení seznamu. Tato metoda seřadí seznam podle přirozeného řazení.
Otázka č. 4) Co je Arrays.asList () v Javě?
Odpovědět: Metoda ‚asList 'pole vrací seznam prvků zajištěných polem.
Závěr
V tomto kurzu jsme se naučili všechny metody, které seznam poskytuje. Seznam Java poskytuje různé metody, pomocí kterých můžete manipulovat a zpracovávat seznamy, včetně vyhledávání, třídění atd. Každou metodu jsme vysvětlili na příslušných příkladech programování.
V našem nadcházejícím tutoriálu podrobně probereme ListIterator.
=> Prozkoumejte jednoduchou sérii školení Java zde.
Doporučené čtení
- Seznam Java - Jak vytvořit, inicializovat a používat seznam v Javě
- Skrytý seznam do pole a další sbírky v Javě
- Výukový program pro pokročilé seznamy v Pythonu (řazení seznamu, obrácení, indexování, kopírování, připojení, součet)
- Seznam Pythonu - vytváření, přístup, rozdělování, přidávání nebo mazání prvků
- Java vlákna s metodami a životním cyklem
- Odebrat / Odstranit prvek z pole v Javě
- Výukový program Java String | Metody řetězců Java s příklady
- Seznam výchozích adres IP routeru pro běžné značky bezdrátových routerů