java list methods sort list
Ten samouczek wyjaśnia różne metody listy Java, takie jak lista sortowania, lista zawiera, dodawanie listy, usuwanie listy, rozmiar listy, dodawanie wszystkiego, usuwanie wszystkiego, odwracanie listy i inne:
Omówiliśmy już ogólnie interfejs listy w naszym poprzednim samouczku. Interfejs listy ma różne metody, które są używane do manipulowania zawartością listy. Za pomocą tych metod możesz wstawiać / usuwać, sortować i wyszukiwać elementy na liście.
W tym samouczku omówimy wszystkie metody, które są udostępniane przez interfejs listy.
=> Sprawdź tutaj, aby zobaczyć A-Z samouczków szkoleniowych Java tutaj.
W celu iteracji listy interfejs listy wykorzystuje iterator listy. Ten iterator listy pochodzi z interfejsu iteratora. W następnym samouczku dowiemy się więcej o iteratorze listy.
Czego się nauczysz:
- Lista metod w Javie
- Usuń duplikaty z listy w Javie
- Często Zadawane Pytania
- Wniosek
- rekomendowane lektury
Lista metod w Javie
W poniższej tabeli przedstawiono różne funkcje oferowane przez interfejs list w języku Java.
Metoda listy | Prototyp metody | Opis |
---|---|---|
zawiera | boolean zawiera (obiekt o) | Sprawdza, czy określony element jest obecny na liście i zwraca wartość true, jeśli jest obecny |
rozmiar | rozmiar int () | Zwraca rozmiar listy, tj. Liczbę elementów na liście lub długość listy. |
jasny | void clear () | Czyści listę, usuwając wszystkie elementy z listy |
Dodaj | void add (int index, element Object) | Dodaje podany element do listy o podanym indeksie |
dodanie logiczne (obiekt o) | Dodaje podany element na końcu listy | |
dodać wszystko | boolean addAll (kolekcja c) | Dołącza całą podaną kolekcję na koniec listy |
boolean addAll (indeks int, kolekcja c) | Wstawia daną kolekcję (wszystkie elementy) do listy o określonym indeksie | |
zawiera wszystko | boolean zawiera wszystko (kolekcja c) | Sprawdza, czy określona kolekcja (wszystkie elementy) jest częścią listy. Zwraca prawdę o tak. |
równa się | boolean równa się (Object o) | Porównuje określony obiekt pod kątem równości z elementami listy |
Otrzymać | Obiekt get (indeks int) | Zwraca element z listy określonej przez indeks |
hashCode | int hashCode () | Zwraca wartość kodu skrótu listy. |
indexOf` | int indexOf (Object o) | Znajduje pierwsze wystąpienie elementu wejściowego i zwraca jego indeks |
jest pusty | boolean isEmpty () | Sprawdza, czy lista jest pusta |
lastIndexOf | int lastIndexOf (obiekt o) | Znajduje ostatnie wystąpienie elementu wejściowego na liście i zwraca jego indeks |
usunąć | Usunięcie obiektu (indeks int) | Usuwa element o określonym indeksie |
boolean remove (Object o) | Usuwa element przy jego pierwszym wystąpieniu na liście | |
Usuń wszystko | boolean removeAll (kolekcja c) | Usuwa wszystkie elementy zawarte w określonej kolekcji z listy |
retainAll | boolean retainAll (kolekcja c) | Naprzeciwko removeAll. Zachowuje element określony w kolekcji wejściowej na liście. |
Zestaw | Zestaw obiektów (indeks int, element Object) | Zmienia element o określonym indeksie, ustawiając go na określoną wartość |
subList | List subList (int fromIndex, int toIndex) | Zwraca podlistę elementów między fromIndex (włącznie) i toIndex (wyłącznie). |
sortować | void sort (Komparator c) | Sortuje element listy zgodnie z określonym komparatorem, aby uzyskać uporządkowaną listę |
toArray | Object [] toArray () | Zwraca tablicową reprezentację listy |
Object [] toArray (Object [] a) | Zwraca reprezentację tablicową, której typ czasu wykonywania jest taki sam, jak określony argument tablicy | |
iterator | Iterator iterator () | Zwraca Iterator dla listy |
listIterator | ListIterator listIterator () | Zwraca ListIterator dla listy |
ListIterator listIterator (indeks int) | Zwraca ListIterator, zaczynając od określonego indeksu na liście |
Następnie omówimy te funkcje wraz z ich przykładami.
rozmiar
Prototyp: rozmiar int ()
Parametry: ZERO
Wartość zwracana: int => Liczba elementów na liście lub innymi słowy długość listy.
Opis: Funkcja size () zwraca liczbę elementów lub rozmiar listy. Można go również nazwać długością w prostych słowach.
jasny
Prototyp: void clear ()
Parametry: ZERO
Wartość zwracana: Brak wartości zwracanej
Opis: Czyści listę, usuwając wszystkie elementy listy. Zgłasza „UnSupportedException”, jeśli operacja nie jest obsługiwana przez listę.
Poniższy przykład zademonstruje metodę size () i 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); } }
Wynik:
Dodaj
Prototyp: void add (int index, element Object)
Parametry: index- pozycja, w której ma zostać dodany element.
Element - element do dodania
Wartość zwracana: unieważnić
Opis: Dodaje podany element do listy o podanym indeksie. Kolejne elementy są przesuwane w prawo.
Zgłaszane są następujące wyjątki:
IndexOutOfBoundsException: Indeks listy jest poza zakresem
UnsupportedOperationException: Operacja dodawania nie jest obsługiwana przez listę.
ClassCastException: Elementu nie można dodać do listy ze względu na klasę określonych elementów.
IllegalArgumentException: Określony element lub jakiś aspekt jest nieprawidłowy.
Dodaj
Prototyp: dodanie logiczne (obiekt o)
Parametry: o => Element do dodania do listy
Wartość zwracana: true => Element został pomyślnie dodany
False => Dodawanie nie powiodło się
Opis: Ta metoda dodaje podany element na końcu listy.
Ta operacja może zgłosić następujące wyjątki.
UnsupportedOperationException: Dodaj operację nieobsługiwaną przez tę listę.
ClassCastException: Nie można dodać określonego elementu ze względu na jego klasę
IllegalArgumentException: Określony element lub jakiś aspekt jest nieprawidłowy.
dodać wszystko
Prototyp: boolean addAll (kolekcja c)
Parametry: c => Kolekcja, której elementy mają zostać dodane do listy
Wartość zwracana: true => Wykonanie metody powiodło się
Opis: Metoda addAll pobiera wszystkie elementy z kolekcji c i dołącza je na końcu listy, zachowując ustawioną kolejność.
Ta metoda wykazuje nieokreślone zachowanie, jeśli kolekcja zostanie zmieniona, gdy operacja jest w toku.
Metoda generuje następujące wyjątki:
UnsupportedOperationException: Dodaj operację nieobsługiwaną przez tę listę.
ClassCastException: Nie można dodać określonego elementu ze względu na jego klasę.
IllegalArgumentException: Określony element lub jakiś aspekt jest nieprawidłowy.
dodać wszystko
Prototyp: boolean addAll (indeks int, kolekcja c)
Parametry: index => Pozycja, w której ma zostać wstawiona kolekcja.
C => Kolekcja, która ma zostać umieszczona na liście.
Wartość zwracana: true => Jeśli elementy kolekcji zostały pomyślnie dodane do listy.
Opis: Metoda addAll wstawia wszystkie elementy z określonej kolekcji do listy o określonym indeksie. Kolejne elementy są następnie przesuwane w prawo. Podobnie jak w przypadku poprzedniego przeciążenia addAll, zachowanie jest nieokreślone, jeśli kolekcja zostanie zmieniona, gdy operacja jest w toku.
Wyjątki zgłaszane przez tę metodę to:
UnsupportedOperationException: Dodaj operację nieobsługiwaną przez tę listę.
ClassCastException: Nie można dodać określonego elementu ze względu na jego klasę.
IllegalArgumentException: Określony element lub jakiś aspekt jest nieprawidłowy.
IndexOutOfBoundsException: Indeks poza zakresem.
Poniższy program przedstawia demonstrację metod add i addAll z listy.
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); } }
Wynik:
zawiera
Prototyp: boolean zawiera (obiekt o)
Parametry: o => Element do przeszukania na liście.
Wartość zwracana: true => Jeśli lista zawiera określony element.
Opis: Metoda „zawiera” sprawdza, czy określony element znajduje się na liście i zwraca wartość logiczną „prawda”, jeśli element istnieje. W przeciwnym razie zwraca fałsz.
zawiera wszystko
Prototyp: boolean zawiera wszystko (kolekcja c)
Parametry: c => Kolekcja do przeszukania na liście.
Wartość zwracana: true => Jeśli wszystkie elementy w określonej kolekcji znajdują się na liście.
Opis: Metoda „containsAll” sprawdza, czy na liście znajdują się wszystkie elementy obecne w określonej kolekcji. Jeśli występuje, zwraca wartość prawdziwą, aw przeciwnym razie fałsz.
Poniższy program w języku Java demonstruje użycie metod „zawiera” i „zawiera wszystko” na liście.
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''); } }
Wynik:
Podana lista zawiera ciąg „Java”, ale nie zawiera ciągu „C”
Lista zawiera ciągi „Ruby” i „Python”
równa się
Prototyp: boolean równa się (Object o)
Parametry: o => Obiekt, który ma zostać przetestowany pod kątem równości.
Wartość zwracana: true => Jeśli podany obiekt jest równy liście.
Opis: Ta metoda służy do porównania danego obiektu z listą równości. Jeśli określony obiekt jest listą, metoda zwraca wartość true. O obu listach mówi się, że są równe wtedy i tylko wtedy, gdy mają ten sam rozmiar, a odpowiadające im elementy na obu listach są równe i w tej samej kolejności.
Poniżej przedstawiono demonstrację metody równości:
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.
'); } }
Wynik:
Otrzymać
Prototyp: Obiekt get (indeks int)
Parametry: index => Pozycja, w której element ma zostać zwrócony.
Wartość zwracana: object => Element w określonej pozycji.
Opis: Metoda get () zwraca element na podanej pozycji.
Ta metoda zgłasza „indexOutOfBoundsException”, jeśli określony indeks znajduje się poza zakresem listy.
Zestaw
Prototyp: Zestaw obiektów (indeks int, element Object)
Parametry: index => Pozycja, w której ma zostać ustawiony nowy element.
element => Nowy element do umieszczenia na pozycji podanej przez indeks.
Wartość zwracana: Object => Element, który został zastąpiony
Opis: Metoda set () zastępuje element o podanym indeksie inną wartością podaną przez element.
Metoda może generować następujące wyjątki:
UnsupportedOperationException: Lista nie obsługuje operacji ustawiania.
ClassCastException: Nie można wykonać operacji ze względu na klasę elementu
IllegalArgumentException: Argument lub jakiś jego aspekt jest nielegalny
IndexOutOfBoundsException: Indeks poza zakresem.
Poniższy program przedstawia przykład metody get () i 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) ); } }
Wynik:
hashCode
Prototyp: int hashCode ()
Parametry: ZERO
Wartość zwracana: int => hashCode listy
Opis: Metoda „hashCode ()” zwraca hashCode listy, która jest wartością całkowitą.
Przykład:
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); } }
Wynik:
jest pusty
Prototyp: boolean isEmpty ()
Parametry: ZERO
Wartość zwracana: true => Lista jest pusta
Opis: Metoda „isEmpty ()” sprawdza, czy lista jest pusta. Metoda IsEmpty służy do sprawdzenia, czy lista zawiera jakieś elementy przed rozpoczęciem przetwarzania tych elementów.
indeks
Prototyp: int indexOf (Object o)
Parametry: o => element do wyszukania na liście
Wartość zwracana: int => indeks lub pozycja pierwszego wystąpienia danego elementu na liście. Zwraca wartość -1, jeśli element nie jest obecny.
Opis: Metoda „indexOf ()” zwraca indeks pierwszego wystąpienia danego elementu o na liście. Jeśli element nie zostanie znaleziony, zwraca -1.
lastIndexOf
Prototyp: int lastIndexOf (obiekt o)
Parametry: o => Obiekt, którego indeks ma być przeszukiwany
Wartość zwracana: int => Indeks ostatniego wystąpienia danego elementu na liście, w przeciwnym razie -1.
Opis: Metoda „lastIndexOf ()” zwraca indeks ostatniego wystąpienia elementu o na liście. Jeśli element nie zostanie znaleziony, metoda zwraca -1.
Poniższy program w języku Java demonstruje użycie metod indexOf i lastIndexOf z listy.
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)); } }
Wynik:
usunąć
Prototyp: Usunięcie obiektu (indeks int)
Parametry: index => Indeks lub pozycja na liście, na której element ma zostać usunięty
Wartość zwracana: Obiekt => Usunięto element
Opis: Metoda „remove ()” usuwa element z danej pozycji z listy. Po usunięciu elementy obok usuniętego elementu są przesuwane w lewo.
Ta metoda może generować następujące wyjątki:
UnsupportedOperationException: Lista nie obsługuje usuwania.
IndexOutOfBoundsException: Określony indeks jest poza zakresem
usunąć
Prototyp: boolean remove (Object o)
Parametry: o => Element do usunięcia z listy
Wartość zwracana: true => Element został pomyślnie usunięty.
Opis: Ta przeciążona wersja metody remove () usuwa pierwsze wystąpienie danego elementu o z listy. Jeśli danego elementu nie ma na liście, to pozostaje niezmieniony.
Ta metoda może zgłosić następujący wyjątek:
UnsupportedOperationException: Lista nie obsługuje usuwania.
Usuń wszystko
Prototyp: boolean removeAll (kolekcja c)
Parametry: c => Kolekcja zawierająca elementy, które są usuwane z listy.
Wartość zwracana: true => Jeśli wywołanie metody powiedzie się i wszystkie elementy określone w kolekcji c zostaną usunięte z listy.
Opis: Metoda „removeAll ()” służy do usuwania wszystkich elementów z listy określonych w kolekcji c, która jest przekazywana jako argument.
Ta metoda może zgłosić następujący wyjątek:
UnsupportedOperationException: removeAll nie jest obsługiwane przez List.
Zobaczmy przykład metod remove i 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); } }
Wynik:
retainAll
Prototyp: boolean retainAll (kolekcja c)
Parametry: c => Kolekcja zawierająca elementy, które powinny zostać zachowane na liście.
Wartość zwracana: true => Jeśli wywołanie metody zmieniło listę.
Opis: Ta metoda usuwa wszystkie elementy z listy z wyjątkiem tych, które są obecne w kolekcji c. Innymi słowy, ta metoda zachowuje wszystkie elementy na liście, które są obecne w kolekcji c, i usuwa inne elementy.
Ta metoda może zgłosić następujący wyjątek:
UnsupportedOperationException: retainAll nie jest obsługiwane przez List.
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); } }
Wynik:
subList
Prototyp: List subList (int fromIndex, int toIndex)
Parametry: fromIndex => dolny indeks listy (włącznie)
toIndex => Wyższy indeks listy (wyłącznie)
Wartość zwracana: Lista => Podlista podanej listy
Opis: Metoda sublist () zwraca częściowy widok listy, nazywany również podlistą z „fromIndex” do „toIndex”. Zwrócona lista podrzędna to tylko widok listy nadrzędnej, a zatem wszelkie zmiany wprowadzone na którejkolwiek z list są widoczne wszędzie.
Podobnie wszystkie operacje na liście działają również na podliście.
Metoda może zgłosić następujący wyjątek:
IndexOutOfBoundsException: Nieprawidłowa wartość toIndex.
Przykładowy program dla metody podlisty podano poniżej.
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); } }
Wynik:
lista sortowania
Prototyp: void sort (Komparator c)
Parametry: c => Komparator, na podstawie którego sortowana jest lista.
Wartość zwracana: ZERO
Opis: Do sortowania listy używana jest metoda „sort ()”. Metoda korzysta z komparatora określonego do sortowania listy.
Zobaczmy przykład metody sortowania . Porównaliśmy to z metodą Collections.sort, która sortuje elementy w kolejności naturalnej. Wynikiem programu jest uporządkowana lista.
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); } }
Wynik:
toArray
Prototyp: Object [] toArray ()
Parametry: ZERO
Wartość zwracana: Obiekt [] => Tablicowa reprezentacja listy
Opis: Metoda toArray () zwraca tablicę reprezentacji listy w odpowiedniej kolejności.
toArray
Prototyp: Object [] toArray (Object [] a)
Parametry: a => Typ tablicy, który ma być dopasowany do typów elementów listy podczas konwersji listy na tablicę.
Wartość zwracana: Obiekt [] => Tablicowa reprezentacja listy.
Opis: To przeciążenie metody toArray () zwraca tablicę zawierającą elementy na liście, które mają taki sam typ środowiska uruchomieniowego jak tablica a.
pytania i odpowiedzi na rozmowę kwalifikacyjną z inżynierem qa
Ta metoda może zgłosić następujący wyjątek:
ArrayStoreException: Typ środowiska uruchomieniowego każdego elementu na liście nie jest podtypem typu środowiska uruchomieniowego każdego elementu na tej liście.
Poniżej przedstawiono przykład implementacji 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)); } }
Wynik:
Iterator
Prototyp: Iterator iterator ()
Parametry: ZERO
Wartość zwracana: Iterator => Iterator do iteracji po elementach listy
Opis: Ta metoda zwraca iterator, który wykonuje iterację po elementach na liście.
Program w języku Java do zademonstrowania używania iteratora.
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() + ' '); } } }
Wynik:
listIterator
Prototyp: ListIterator listIterator ()
Parametry: ZERO
Wartość zwracana: ListIterator => Listiterator elementów listy.
Opis: Metoda listIterator () zwraca obiekt ListIterator elementów z listy. Ten iterator zaczyna się od początku listy, czyli indeksu 0.
listIterator
Prototyp: ListIterator listIterator (indeks int)
Parametry: index => Pozycja w której zaczyna się listIterator.
Wartość zwracana: ListIterator => ListIterator pod określonym indeksem na liście.
Opis: Przeciążenie metody listIterator () zwraca listIterator, która zaczyna się na podanej pozycji na liście. Podany indeks wskazuje, że będzie to pierwszy element, który zostanie zwrócony przez pierwsze wywołanie metody nextElement () metody ListIterator.
Metoda może zgłosić wyjątek IndexOutOfBoundsException dla nieprawidłowej wartości indeksu.
Poniższy przykład demonstruje użycie listIterator.
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() + ' '); } } }
Wynik:
Później omówimy szczegółowo ListIterator.
Omówmy teraz niektóre z różnych operacji, które można wykonać na listach, ale metody, które nie są dostępne w interfejsie list.
Kopiuj listę w Javie
Aby skopiować elementy jednej listy do innej listy, musisz użyć metody copy () udostępnionej przez strukturę kolekcji.
Metoda Collections.copy () kopiuje wszystkie elementy listy podanej jako drugi argument na listę podaną jako pierwszy argument. Zwróć uwagę, że lista, do której kopiowana jest zawartość innej listy, powinna być wystarczająco duża, aby pomieścić kopiowane elementy.
Jeśli lista nie jest wystarczająco duża, metoda copy zgłasza „indexOutOfBoundsEexception”.
Poniższy program kopiuje zawartość jednej listy do drugiej.
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); } }
Wynik:
Usuń duplikaty z listy w Javie
Dana lista może, ale nie musi, zawierać powtarzające się elementy lub duplikaty. Jeśli lista, z którą pracujesz, zawiera zduplikowane elementy i chcesz, aby na liście znalazły się wszystkie odrębne elementy, istnieją dwie metody usuwania duplikatów z listy obsługiwanych w języku Java.
Korzystanie ze strumienia Java 8
Pierwszą metodą usuwania duplikatów z listy jest użycie metody wyraźnej () udostępnianej przez strumień Java 8. Tutaj lista zawierająca duplikaty wywołuje metodę stream () .distinct, a następnie zwracana wartość jest konwertowana na nową listę, która będzie zawierała tylko odrębne elementy.
Poniższy program demonstruje użycie metody wyraźnej ().
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); } }
Wynik:
Korzystanie z podejścia Iterator
Usuwanie duplikatów z listy za pomocą iteratora jest długotrwałym i prymitywnym podejściem. W tym podejściu musisz przejrzeć listę i umieścić pierwsze wystąpienie każdego elementu na nowej liście. Każdy kolejny element jest sprawdzany, czy jest duplikatem.
Poniższy program pozwala to osiągnąć.
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); } }
Wynik:
Często Zadawane Pytania
Pytanie 1) Jaka jest metoda get na liście w Javie?
Odpowiedź: Metoda Get listy służy do pobrania określonego elementu z listy na podstawie indeksu. Przekazujesz wymagany indeks do metody get, a metoda get zwróci wartość elementu w tym indeksie.
Pytanie 2) Jaka jest metoda toArray w Javie?
Odpowiedź: Metoda toArray () służy do uzyskania tablicowej reprezentacji listy.
Pytanie 3) Jak sortować listy w Javie?
Odpowiedź: W Javie listę można sortować przy użyciu metody sortowania listy. Możesz przekazać własne kryteria sortowania za pomocą interfejsu komparatora, który jest przekazywany do metody sortowania jako parametr.
Możesz także użyć kolekcji. Sort metoda sortowania listy. Ta metoda sortuje listę według naturalnego porządku.
Pytanie 4) Co to jest Arrays.asList () w Javie?
Odpowiedź: Metoda „asList” tablicy zwraca listę elementów obsługiwanych przez tablicę.
Wniosek
W tym samouczku poznaliśmy wszystkie metody, które zapewnia lista. Lista Java udostępnia różne metody, za pomocą których można manipulować i przetwarzać listy, w tym wyszukiwanie, sortowanie itp. Wyjaśniliśmy tutaj każdą metodę za pomocą odpowiednich przykładów programowania.
W naszym nadchodzącym samouczku szczegółowo omówimy ListIterator.
=> Zapoznaj się z serią prostych szkoleń dotyczących języka Java.
rekomendowane lektury
- Lista Java - jak tworzyć, inicjować i używać listy w Javie
- Ukryta lista tablic i innych kolekcji w Javie
- Python Advanced List tutorial (sortowanie listy, odwracanie, indeks, kopiowanie, łączenie, sumowanie)
- Lista Pythona - twórz, korzystaj, dziel, dodawaj lub usuwaj elementy
- Wątki Java z metodami i cyklem życia
- Usuń / Usuń element z tablicy w Javie
- Samouczek dotyczący ciągów Java | Metody ciągów Java z przykładami
- Domyślna lista adresów IP routerów dla popularnych marek routerów bezprzewodowych