java list how create
Ten samouczek dotyczący listy Java wyjaśnia, jak tworzyć, inicjować i drukować listy w języku Java. Samouczek wyjaśnia również listę list z pełnym przykładem kodu:
W tym samouczku poznasz strukturę danych „list”, która jest jedną z podstawowych struktur w Java Collection Interface.
Lista w Javie to sekwencja elementów zgodnie z kolejnością. Interfejs List pakietu java.util to ten, który implementuje tę sekwencję obiektów uporządkowanych w określony sposób zwany Listą.
=> Sprawdź WSZYSTKIE samouczki Java tutaj.
Podobnie jak w przypadku tablic, dostęp do elementów listy można również uzyskać za pomocą indeksów, których pierwszy indeks zaczyna się od 0. Indeks wskazuje konkretny element w indeksie „i”, tj. Znajduje się on i elementów od początku listy.
Niektóre cechy listy w Javie obejmują:
- Listy mogą zawierać zduplikowane elementy.
- Lista może również zawierać elementy „null”.
- Listy obsługują typy ogólne, tj. Możesz mieć listy ogólne.
- Możesz również mieć obiekty mieszane (obiekty różnych klas) na tej samej liście.
- Listy zawsze zachowują kolejność reklam i umożliwiają dostęp pozycyjny.
Czego się nauczysz:
- Lista w Javie
- Wniosek
Lista w Javie
Interfejs Java List jest podtypem interfejsu Java Collection. Jest to standardowy interfejs, który dziedziczy interfejs Collection języka Java.
Poniżej przedstawiono diagram klas interfejsu Java List.
Jak pokazano na powyższym diagramie klas, interfejs listy Java wywodzi się z interfejsu Collection pakietu java.util, który z kolei wywodzi się z interfejsu Iterowalnego pakietu java.util. Klasa AbstractList zapewnia szkieletową implementację interfejsu List.
Klasy LinkedList, Stack, Vector, ArrayList i CopyOnWriteArrayList to wszystkie klasy implementacji interfejsu List, które są często używane przez programistów. Dlatego w Javie istnieją cztery typy list, tj. Stack, LinkedList, ArrayList i Vector.
Stąd, gdy musisz zaimplementować interfejs listy, możesz zaimplementować dowolną z powyższych klas typu listy w zależności od wymagań. Aby uwzględnić funkcjonalność interfejsu listy w swoim programie, będziesz musiał zaimportuj pakiet java.util. * zawierający interfejs listy i inne definicje klas w następujący sposób:
import java.util.*;
Utwórz i zadeklaruj listę
Powiedzieliśmy już, że List jest interfejsem i jest implementowany przez klasy takie jak ArrayList, Stack, Vector i LinkedList. Dlatego możesz zadeklaruj i utwórz wystąpienia listy w jeden z następujących sposobów:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Jak pokazano powyżej, możesz utworzyć listę z dowolną z powyższych klas, a następnie zainicjować te listy wartościami. Z powyższych stwierdzeń można wywnioskować, że kolejność elementów będzie się zmieniać w zależności od klasy użytej do utworzenia instancji listy.
Na przykład, dla listy z klasą stosu kolejność to Last In, First Out (LIFO).
Zainicjuj listę Java
Możesz skorzystać z dowolnej z poniższych metod, aby zainicjować obiekt listy.
# 1) Korzystanie z metody asList
Metoda asList () została już szczegółowo omówiona w temacie Tablice. Możesz utworzyć niezmienną listę przy użyciu wartości tablicowych.
Ogólna składnia to:
List listname = Arrays.asList(array_name);
Tutaj data_type powinna być zgodna z tablicą.
Powyższa instrukcja tworzy niezmienną listę. Jeśli chcesz, aby lista była zmienna, musisz utworzyć instancję listy za pomocą new, a następnie przypisać do niej elementy tablicy za pomocą metody asList.
Jest to pokazane poniżej:
List listname = new ArrayList (Arrays.asList(array_name));
Chodźmy zaimplementuj program w Javie, który pokazuje tworzenie i inicjalizację listy przy użyciu metody asList .
cykliczna kolejka tablicowa c ++
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
Wynik:
W powyższym programie utworzyliśmy niezmienną listę najpierw za pomocą metody asList. Następnie tworzymy zmienną listę, tworząc wystąpienie ArrayList, a następnie inicjując tę ArrayList wartościami z tablicy przy użyciu metody asList.
Zauważ, że ponieważ druga lista jest zmienna, możemy również dodać do niej więcej wartości.
# 2) Korzystanie z List.add ()
Jak już wspomniano, ponieważ lista jest tylko interfejsem, nie można jej utworzyć instancji. Ale możemy utworzyć instancje klas, które implementują ten interfejs. Dlatego też, aby zainicjować klasy list, można użyć odpowiednich metod add, które są metodą interfejsu listy, ale zaimplementowaną przez każdą z klas.
Jeśli ty utwórz instancję połączonej klasy listy, jak poniżej:
List llist = new LinkedList ();
Następnie, aby dodać element do listy, możesz użyć metody add w następujący sposób:
llist.add(3);
Istnieje również technika o nazwie „Inicjalizacja podwójnego nawiasu klamrowego”, w której lista jest tworzona i inicjowana przez wywołanie metody add w tej samej instrukcji.
Odbywa się to w sposób pokazany poniżej:
List llist = new LinkedList (){{ add(1); add(3);}};
Powyższe stwierdzenie dodaje elementy 1 i 3 do listy.
Poniższy program przedstawia inicjalizacje listy metodą add . Wykorzystuje również technikę inicjalizacji z podwójnym nawiasem klamrowym.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
Wynik:
Ten program ma trzy różne deklaracje list, tj. ArrayList, LinkedList i Stack.
Obiekty ArrayList i LinkedList są tworzone, a następnie wywoływane są metody add w celu dodania elementów do tych obiektów. W przypadku stosu używana jest inicjalizacja z podwójnym nawiasem klamrowym, w której metoda add jest wywoływana podczas samej instancji.
# 3) Korzystanie z metod klas kolekcji
Klasa collections języka Java ma różne metody, których można użyć do zainicjowania listy.
Oto niektóre z metod:
- dodać wszystko
Plik Ogólna składnia metody addAll kolekcji to:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Tutaj dodajesz wartości do pustej listy. Metoda addAll przyjmuje listę jako pierwszy parametr, po którym następują wartości do wstawienia na liście.
- unmodifiableList ()
Metoda „unmodifiableList ()” zwraca niezmienną listę, do której nie można dodawać ani usuwać elementów.
Ogólna składnia tej metody jest następująca:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metoda przyjmuje wartości list jako parametry i zwraca listę. Jeśli w ogóle spróbujesz dodać lub usunąć dowolny element z tej listy, kompilator zgłosi wyjątek UnsupportedOperationException.
- singletonList ()
Metoda „singletonList” zwraca listę zawierającą pojedynczy element. Lista jest niezmienna.
Ogólna składnia tej metody to:
List listname = Collections.singletonList(value);
Poniższy program w języku Java demonstruje wszystkie trzy metody klasy Collections omówione powyżej.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
Wynik:
# 4) Korzystanie ze strumieni Java8
Wraz z wprowadzeniem strumieni w Javie 8, można również skonstruować strumień danych i zebrać je w postaci listy.
Następujące program pokazuje tworzenie listy za pomocą strumienia.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
Wynik:
Powyższy program zbiera strumień łańcucha do listy i zwraca go. Oprócz asList w funkcji collect możesz także użyć innych metod Collectors, takich jak „toCollection”, „unmodifiableList” itp.
# 5) Metoda Java 9 List.of ()
W Javie 9 wprowadzono nową metodę List.of (), która pobiera dowolną liczbę elementów i tworzy listę. Utworzona lista jest niezmienna.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
Wynik:
Przykład listy
Poniżej podano pełny przykład użycia interfejsu listy i jego różnych metod.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
Wynik:
Powyższe dane wyjściowe programu pokazują różne operacje wykonywane na tablicy ArrayList. Najpierw tworzy i inicjalizuje listę. Następnie kopiuje zawartość innej listy na tę listę, a także usuwa element z listy. Na koniec zastępuje ostatni element na liście inną wartością.
Szczegółowo zbadamy metody list w naszym następnym samouczku.
Lista drukowania
Istnieje wiele metod drukowania elementów listy w Javie.
Omówmy tutaj niektóre metody.
# 1) Korzystanie z pętli For / Enhanced For Loop
Lista jest uporządkowaną kolekcją, do której można uzyskać dostęp za pomocą indeksów. Możesz użyć pętli for, która jest używana do iteracji przy użyciu indeksów do wydrukowania każdego elementu listy.
Java ma inną wersję pętli for, znaną jako ulepszona pętla for, której można również użyć do uzyskania dostępu do każdego elementu listy i wydrukowania go.
Pokazany poniżej program Java demonstruje drukowanie zawartości listy przy użyciu pętli for i ulepszona pętla for.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i Wynik:
# 2) Korzystanie z metody toString
Metoda „toString ()” interfejsu listy zwraca ciąg znaków reprezentujący listę.
Program poniżej demonstruje użycie metody toString ().
usuń element z tablicy java
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
Wynik:
Lista przekonwertowana na tablicę
Lista zawiera metodę toArray (), która konwertuje listę na tablicę. Po przekonwertowaniu na tablicę można użyć metod tablicowych omówionych w odpowiednim temacie, aby wydrukować zawartość tej tablicy. Możesz użyć pętli for lub ulepszonej for, a nawet metody toString.
Przykład podany poniżej używa metody toString do wydrukowania zawartości tablicy.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
Wynik:
Korzystanie ze strumieni Java 8
Strumienie zostały wprowadzone w Javie 8. Możesz użyć strumieni do zapętlenia listy. Istnieją również lambdy, za pomocą których możesz iterować po liście.
Poniższy program pokazuje wykorzystanie strumieni do iterowania listy i wyświetlania jej zawartości.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
Wynik:
Oprócz metod omówionych powyżej, możesz użyć iteratorów list do iteracji po liście i wyświetlenia jej zawartości. W kolejnych samouczkach będziemy mieć pełny artykuł na temat iteratora listy.
Lista list
Interfejs listy Java obsługuje „listę list”. W tym przypadku poszczególne elementy listy są ponownie listą. Oznacza to, że możesz mieć listę wewnątrz innej listy.
Ta koncepcja jest bardzo przydatna, gdy musisz czytać dane z, powiedzmy, plików CSV. W tym przypadku może być konieczne przeczytanie wielu list lub list wewnątrz list, a następnie zapisanie ich w pamięci. Ponownie będziesz musiał przetworzyć te dane i zapisać z powrotem do pliku. W takich sytuacjach możesz więc prowadzić listę list, aby uprościć przetwarzanie danych.
Poniższy program w języku Java przedstawia przykład listy list w języku Java.
W tym programie mamy listę list typu String. Tworzymy dwie oddzielne listy typu string i przypisujemy do nich wartości. Obie te listy są dodawane do listy list przy użyciu metody add.
Aby wyświetlić zawartość listy list, używamy dwóch pętli. Pętla zewnętrzna (foreach) iteruje przez listy list uzyskujących dostęp do list. Wewnętrzna pętla foreach uzyskuje dostęp do poszczególnych elementów łańcucha każdej z tych list.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
Wynik:
Lista list w Javie to niewielka koncepcja, ale jest ważna zwłaszcza, gdy musisz czytać złożone dane w programie.
Często Zadawane Pytania
Pytanie 1) Co to jest lista i co jest ustawione w Javie?
Odpowiedź: Lista to uporządkowany zbiór elementów. Możesz mieć zduplikowane elementy na liście.
Zestaw nie jest uporządkowaną kolekcją. Elementy w zestawie nie są ułożone w określonej kolejności. Ponadto elementy zestawu muszą być niepowtarzalne. Nie zezwala na duplikaty.
Pytanie 2) Jak działa lista w Javie?
Odpowiedź: Lista jest interfejsem w Javie, który wywodzi się z interfejsu Collection. Klasy ArrayList, LinkedList, Stack i Vector implementują interfejs listy. Zatem programista może używać tych klas do korzystania z funkcjonalności interfejsu listy.
P # 3) Co to jest ArrayList w Javie?
Odpowiedź: ArrayList to tablica dynamiczna. Jest to zbiór elementów o zmiennym rozmiarze i implementuje interfejs listy. ArrayList wewnętrznie używa tablicy do przechowywania elementów.
Pytanie 4) Czy w Javie listy zaczynają się od 0 czy 1?
Odpowiedź: Listy w języku Java mają indeksy całkowite liczone od zera. Oznacza to, że pierwszy element listy ma indeks 0, drugi element ma indeks 1 i tak dalej.
P # 5) Czy lista jest uporządkowana?
Odpowiedź: Tak. Lista jest uporządkowanym zbiorem elementów. Ta kolejność jest zachowywana podczas wstawiania nowego elementu do listy,
Wniosek
W tym samouczku przedstawiono wprowadzenie do interfejsu listy w Javie. Omówiliśmy również główne koncepcje list, takie jak tworzenie, inicjalizacja list, drukowanie list itp.
W naszych nadchodzących samouczkach omówimy różne metody oferowane przez interfejs listy. Omówimy również konstrukcję iteratora używaną do iteracji obiektu listy. Konwersję obiektów list na inne struktury danych omówimy w naszym nadchodzącym samouczku.
=> Odwiedź tutaj, aby zobaczyć serię szkoleń Java dla wszystkich.
rekomendowane lektury
- Java Array - Deklaruj, twórz i inicjuj tablicę w Javie
- Tablica obiektów w Javie: jak tworzyć, inicjować i używać
- Java Hello World - już dziś utwórz swój pierwszy program w Javie
- Wdrażanie Java: tworzenie i wykonywanie pliku Java JAR
- Wirtualna maszyna Java: jak JVM pomaga w uruchamianiu aplikacji Java
- Modyfikatory dostępu w Javie - samouczek z przykładami
- Samouczek dotyczący refleksji w języku Java z przykładami
- Wprowadzenie do języka programowania Java - samouczek wideo