Ten samouczek Java List wyjaśnia, jak tworzyć, inicjować i drukować listy w Javie. Samouczek wyjaśnia również listę list z pełnym kodem przykład:

Ten samouczek wprowadzi cię w strukturę danych 'list', która jest jedną z podstawowych struktur w Java Collection Interface.

lista w języku Java jest sekwencją elementów według kolejności. Interfejs listy Javy.,pakiet util jest Tym, który implementuje tę sekwencję obiektów uporządkowanych w określony sposób zwany List.

=> sprawdź wszystkie tutoriale Java tutaj.

podobnie jak tablice, elementy listy mogą być również dostępne za pomocą indeksów z pierwszym indeksem zaczynającym się od 0. Indeks wskazuje konkretny element w indeksie „i”, tzn. jest to i elementy oddalone od początku listy.

niektóre cechy listy w języku Java to:

  • listy mogą mieć zduplikowane elementy.
  • lista może również zawierać elementy 'null'.,
  • listy obsługują listy generyczne, tzn. możesz mieć listy generyczne.
  • na tej samej liście mogą znajdować się również obiekty mieszane (obiekty różnych klas).
  • listy zawsze zachowują kolejność wstawiania i zezwalają na dostęp pozycyjny.

lista w Javie

interfejs Java List jest podtypem interfejsu Java Collection. Jest to standardowy interfejs, który dziedziczy interfejs kolekcji Javy.

Poniżej znajduje się diagram klas interfejsu listy Java.,

diagram klas Java List

jak pokazano na powyższym diagramie klas, interfejs Java list rozciąga się z interfejsu kolekcji java.pakiet util, który z kolei rozciąga się z interfejsu Iterable java.pakiet util. Klasa AbstractList dostarcza szkieletową implementację interfejsu List.

klasy LinkedList, Stack, Vector, ArrayList i CopyOnWriteArrayList są klasami implementacyjnymi interfejsu List, które są często używane przez programistów., Tak więc w Javie istnieją cztery rodzaje list tj. Stack, LinkedList, ArrayList i Vector.

dlatego, gdy musisz zaimplementować interfejs list, możesz zaimplementować dowolną z powyższych klas typu list w zależności od wymagań. Aby włączyć funkcjonalność interfejsu listy do programu, trzeba będzie zaimportować pakiet java.util.,* które zawierają interfejs listy i inne definicje klas w następujący sposób:

import java.util.*;

Create & Declare List

już stwierdziliśmy, że lista jest interfejsem i jest zaimplementowana przez klasy takie jak ArrayList, Stack, Vector i LinkedList. Dlatego możesz zadeklarować i utworzyć instancje 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 instrukcji można stwierdzić, że kolejność elementów zmieni się w zależności od klasy użytej do utworzenia instancji listy.

na przykład, dla listy z klasą stosu, kolejność jest Last In, First Out (LIFO).

Initialize Java List

możesz użyć dowolnej z metod podanych poniżej, aby zainicjować obiekt list.

#1) używając metody asList

metoda asList () jest już szczegółowo omówiona w temacie Tablice. Możesz utworzyć niezmienną listę używając wartości tablicy.,

ogólna składnia jest następująca:

List<data_type> listname = Arrays.asList(array_name);

w tym przypadku typ danych powinien być zgodny z typem tablicy.

powyższe polecenie tworzy listę niezmienną. Jeśli chcesz, aby lista była zmienna, musisz utworzyć instancję listy używając new, a następnie przypisać do niej elementy tablicy używając metody asList.

jest to pokazane poniżej:

List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));

zaimplementujmy program w języku Java, który pokazuje tworzenie i inicjalizację listy przy użyciu metody asList.,

Output:

w powyższym programie stworzyliśmy listę niezmienną najpierw przy użyciu metody asList. Następnie tworzymy zmienną listę, tworząc instancję ArrayList, a następnie inicjalizują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 listy.add()

jak już wspomniano, ponieważ lista jest tylko interfejsem, nie można jej utworzyć instancji. Ale możemy tworzyć instancje klas, które implementują ten interfejs., Dlatego, aby zainicjować klasy listy, możesz użyć ich odpowiednich metod dodawania, które są metodą interfejsu listy, ale zaimplementowaną przez każdą z klas.

Jeśli tworzysz instancję klasy linked list jak poniżej:

List<Integer> llist = new LinkedList<Integer> ();

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 „Double brace initialization”, w której lista jest inicjowana i inicjalizowana przez wywołanie metody add w tym samym oświadczeniu.,

odbywa się to w następujący sposób:

List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};

powyższe polecenie dodaje elementy 1 i 3 do listy.

poniższy program pokazuje inicjalizację listy przy użyciu metody add. Wykorzystuje również technikę inicjalizacji podwójnego nawiasu klamrowego.

Output:

Ten program ma trzy różne deklaracje list tj. ArrayList, LinkedList i Stack.

obiekty ArrayList i LinkedList są tworzone instancyjnie, a następnie są wywoływane metody add, aby dodać elementy do tych obiektów., W przypadku stosu używana jest inicjalizacja podwójnego nawiasu klamrowego, w której metoda add jest wywoływana podczas samej instancji.

#3) używając metod klasy Collections

Klasa collections Java ma różne metody, które mogą być użyte do inicjalizacji listy.

niektóre metody to:

  • addAll

ogólna składnia metody addall dla kolekcji to:

List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);

tutaj dodajesz wartości do pustej listy. Metoda addAll przyjmuje listę jako pierwszy parametr, a następnie wartości, które mają być wstawione do listy.,

  • unmodifiableList ()

metoda 'unmodifiableList()' zwraca niezmienną listę, do której elementów nie można dodać ani usunąć.

ogólna składnia tej metody jest następująca:

List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));

metoda pobiera wartości listy jako parametry i zwraca listę. Jeśli w ogóle spróbujesz dodać lub usunąć jakikolwiek element z tej listy, kompilator wyrzuci wyjątek Nieobsługiwanyoperationexception.

  • singletonList ()

metoda 'singletonList' zwraca listę z pojedynczym elementem. Lista jest niezmienna.,

ogólna składnia tej metody to:

List<datatype> listname = Collections.singletonList(value);

poniższy program Java demonstruje wszystkie trzy metody klasy Collections omówione powyżej.

Output:

#4) Korzystanie ze strumieni Java8

wraz z wprowadzeniem strumieni w Javie 8 można również konstruować strumień danych i gromadzić je na liście.

poniższy program pokazuje tworzenie listy za pomocą strumienia.

Output:

powyższy program zbiera strumień ciągu znaków do listy i zwraca go., Możesz również użyć innych metod kolekcjonerskich, takich jak 'toCollection', 'unmodifiableList' itp. oprócz asList w funkcji collect.

#5) Java 9 List.of () metoda

nowa metoda jest wprowadzona w Java 9, List.of (), która przyjmuje dowolną liczbę elementów i konstruuje listę. Skonstruowana lista jest niezmienna.

Output:

przykład listy

poniżej znajduje się kompletny przykład użycia interfejsu listy i jego różnych metod.

Output:

powyższe wyjście programu pokazuje różne operacje wykonywane na tablicy ArrayList. Najpierw tworzy i inicjalizuje listę., Następnie kopiuje zawartość innej listy do tej listy, a także usuwa element z listy. Na koniec zastępuje ostatni element na liście inną wartością.

szczegółowo omówimy metody listy w naszym następnym samouczku.

Drukowanie listy

istnieją różne metody, za pomocą których można drukować elementy listy w języku Java.

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 za pomocą indeksów do drukowania każdego elementu listy.

Java ma inną wersję for loop knows jako enhanced for loop, która może być również używana do uzyskiwania dostępu i drukowania każdego elementu listy.

przedstawiony poniżej program Java demonstruje drukowanie zawartości listy za pomocą pętli for I enhanced for.

Output:

#2) przy użyciu metody toString

metoda 'toString()' interfejsu listy zwraca reprezentację łańcuchową listy.

poniższy program demonstruje użycie metody toString ().,

Output:

lista przekonwertowana do tablicy

lista zawiera metodę ToArray (), która konwertuje listę do tablicy. Po przekonwertowaniu do tablicy, możesz użyć metod tablicowych omówionych w danym temacie, Aby wydrukować zawartość tej tablicy. Możesz użyć metody For lub enhanced for loop lub nawet metody toString.

poniższy przykład wykorzystuje metodę toString do wypisania zawartości tablicy.

wyjście:

używając strumieni Java 8

strumienie są wprowadzane w Javie 8. Możesz korzystać ze strumieni, aby zapętlić listę., Istnieją również lambdy, za pomocą których można iterować przez Listę.

poniższy program pokazuje użycie strumieni do iteracji listy i wyświetlania jej zawartości.

Output:

oprócz metod omówionych powyżej, możesz użyć iteratorów listy do iteracji listy i wyświetlania jej zawartości. W kolejnych tutorialach będziemy mieli pełny artykuł na temat iteratora listy.

lista list

interfejs Java list 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 trzeba odczytać dane z plików say CSV. W tym miejscu 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ć je z powrotem do pliku. Tak więc w takich sytuacjach można prowadzić listę list w celu uproszczenia przetwarzania danych.

poniższy program Java demonstruje przykład listy list 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. Zewnętrzna pętla (foreach)iteracji poprzez listy list dostęp do list. Wewnętrzna pętla foreach uzyskuje dostęp do poszczególnych elementów łańcucha każdej z tych list.

Output:

Java list of lists jest małą koncepcją, ale jest ważna szczególnie, gdy trzeba czytać złożone dane w programie.

Najczęściej zadawane pytania

Q #1) Co to jest lista i ustawić w Javie?

odpowiedź: lista jest uporządkowanym zbiorem elementów., Możesz mieć zduplikowane elementy na liście.

zbiór nie jest zbiorem uporządkowanym. Elementy w zbiorze nie są ułożone w żadnej określonej kolejności. Ponadto elementy w zestawie muszą być wyjątkowe. Nie pozwala na duplikaty.

Q #2) Jak działa lista w Javie?

odpowiedź: lista jest interfejsem w języku Java, który rozciąga się z interfejsu kolekcji. Klasy ArrayList, LinkedList, stos i Vector implementują interfejs listy. W ten sposób programista może używać tych klas do korzystania z funkcjonalności interfejsu listy.

Q #3) Co to jest ArrayList w Javie?,

odpowiedź: ArrayList jest tablicą dynamiczną. Jest to zbiór elementów z możliwością zmiany rozmiaru i implementuje interfejs listy. ArrayList wewnętrznie wykorzystuje tablicę do przechowywania elementów.

Q #4) czy listy zaczynają się od 0 Czy 1 w Javie?

odpowiedź: listy w Javie mają indeks liczb całkowitych oparty na 0. Oznacza to, że pierwszy element na liście znajduje się w indeksie 0, drugi element w indeksie 1 i tak dalej.

Q #5) czy lista jest uporządkowana?

odpowiedź: Tak. Lista jest uporządkowanym zbiorem elementów., Ta kolejność jest zachowana, podczas wstawiania nowego elementu do listy,

podsumowanie

ten tutorial dał wprowadzenie do interfejsu listy w Javie. Omówiliśmy również główne pojęcia list, takie jak tworzenie, inicjalizacja list, drukowanie list itp.

w naszych nadchodzących samouczkach omówimy różne metody, które są dostarczane przez interfejs listy. Omówimy również konstrukcję iteratora, która jest używana do iteracji obiektu list. Omówimy konwersję obiektów listy do innych struktur danych w naszym nadchodzącym samouczku.,

=> odwiedź tutaj, aby zobaczyć serię szkoleń Java dla wszystkich.