Trieda Java LinkedList používa na ukladanie prvkov dvojitý prepojený zoznam. Poskytuje dátovú štruktúru prepojeného zoznamu. Zdedí triedu AbstractList a implementuje rozhrania List a Deque.
Dôležité body o Java LinkedList sú:
- Trieda Java LinkedList môže obsahovať duplicitné prvky.
- Trieda Java LinkedList udržiava poradie vkladania.
- Trieda Java LinkedList nie je synchronizovaná.
- V triede Java LinkedList je manipulácia rýchla, pretože nemusí dôjsť k žiadnemu posunu.
- Java LinkedList trieda môže byť použitá ako zoznam, zásobník alebo front.
Hierarchia triedy LinkedList
Ako je znázornené na obrázku vyššie, trieda Java LinkedList rozširuje triedu AbstractSequentialList a implementuje rozhrania List a Deque.
plná forma
Dvojito prepojený zoznam
V prípade dvojito prepojeného zoznamu môžeme pridávať alebo odoberať prvky z oboch strán.
Deklarácia triedy LinkedList
Pozrime sa na deklaráciu pre triedu java.util.LinkedList.
gimp zmení farbu
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
Konštruktéri Java LinkedList
Konštruktér | Popis |
---|---|
LinkedList() | Používa sa na vytvorenie prázdneho zoznamu. |
LinkedList (Kolekcia c) | Používa sa na zostavenie zoznamu obsahujúceho prvky zadanej kolekcie, v poradí ich vracia iterátor kolekcie. |
Metódy Java LinkedList
Metóda | Popis |
---|---|
boolovské sčítanie (E e) | Používa sa na pripojenie špecifikovaného prvku na koniec zoznamu. |
void add (int index, E prvok) | Používa sa na vloženie určeného prvku na zadaný index pozície v zozname. |
boolean addAll(kolekcia c) | Používa sa na pripojenie všetkých prvkov v zadanej kolekcii na koniec tohto zoznamu v poradí, v akom ich vráti iterátor zadanej kolekcie. |
boolean addAll(kolekcia c) | Používa sa na pripojenie všetkých prvkov v zadanej kolekcii na koniec tohto zoznamu v poradí, v akom ich vráti iterátor zadanej kolekcie. |
boolean addAll(int index, kolekcia c) | Používa sa na pripojenie všetkých prvkov v zadanej kolekcii, počnúc od zadanej pozície zoznamu. |
void addFirst(E e) | Používa sa na vloženie daného prvku na začiatok zoznamu. |
void addLast(E e) | Používa sa na pripojenie daného prvku na koniec zoznamu. |
void clear() | Používa sa na odstránenie všetkých prvkov zo zoznamu. |
Object clone() | Používa sa na vrátenie plytkej kópie ArrayList. |
boolean obsahuje (Objekt o) | Používa sa na vrátenie true, ak zoznam obsahuje špecifikovaný prvok. |
Iterátor zostupneIterator() | Používa sa na vrátenie iterátora nad prvkami v deque v opačnom poradí. |
E prvok() | Používa sa na získanie prvého prvku zoznamu. |
E get (int index) | Používa sa na vrátenie prvku na určené miesto v zozname. |
E getFirst() | Používa sa na vrátenie prvého prvku v zozname. |
E getLast() | Používa sa na vrátenie posledného prvku v zozname. |
int indexOf(Objekt o) | Používa sa na vrátenie indexu v zozname prvého výskytu zadaného prvku alebo -1, ak zoznam neobsahuje žiadny prvok. |
int lastIndexOf(Object o) | Používa sa na vrátenie indexu v zozname posledného výskytu zadaného prvku alebo -1, ak zoznam neobsahuje žiadny prvok. |
ListIterator listIterator(int index) | Používa sa na vrátenie iterátora zoznamu prvkov v správnom poradí, začínajúc na zadanej pozícii v zozname. |
booleovská ponuka (E e) | Pridá špecifikovaný prvok ako posledný prvok zoznamu. |
booleovská ponukaFirst(E e) | Vloží zadaný prvok na začiatok zoznamu. |
boolovská ponukaPosledná(E e) | Vloží zadaný prvok na koniec zoznamu. |
E nahliadnuť () | Získa prvý prvok zoznamu |
E peekFirst() | Načíta prvý prvok zoznamu alebo vráti hodnotu null, ak je zoznam prázdny. |
E peekLast() | Načíta posledný prvok zoznamu alebo vráti hodnotu null, ak je zoznam prázdny. |
E anketa() | Načíta a odstráni prvý prvok zoznamu. |
E pollFirst() | Načíta a odstráni prvý prvok zoznamu alebo vráti hodnotu null, ak je zoznam prázdny. |
E pollLast() | Načíta a odstráni posledný prvok zoznamu alebo vráti hodnotu null, ak je zoznam prázdny. |
A pop () | Vytiahne prvok zo zásobníka reprezentovaného zoznamom. |
void push (E e) | Vloží prvok do zásobníka reprezentovaného zoznamom. |
E odstrániť() | Používa sa na získanie a odstránenie prvého prvku zoznamu. |
E odstrániť (int index) | Používa sa na odstránenie prvku na určenom mieste v zozname. |
boolovské odstránenie (objekt o) | Používa sa na odstránenie prvého výskytu zadaného prvku v zozname. |
E removeFirst() | Odstráni a vráti prvý prvok zo zoznamu. |
boolean removeFirstOccurrence(Object o) | Používa sa na odstránenie prvého výskytu zadaného prvku v zozname (pri prechádzaní zoznamom od hlavy po koniec). |
E removeLast() | Odstráni a vráti posledný prvok zo zoznamu. |
boolean removeLastOccurrence(Object o) | Odstráni posledný výskyt zadaného prvku v zozname (pri prechádzaní zoznamom od hlavy po koniec). |
E sada (int index, E prvok) | Nahradí prvok na zadanej pozícii v zozname zadaným prvkom. |
Object[] toArray() | Používa sa na vrátenie poľa obsahujúceho všetky prvky v zozname v správnom poradí (od prvého po posledný prvok). |
T[] toArray(T[] a) | Vracia pole obsahujúce všetky prvky v správnom poradí (od prvého po posledný prvok); typ runtime vráteného poľa je typ zadaného poľa. |
int size() | Používa sa na vrátenie počtu prvkov v zozname. |
Príklad Java LinkedList
import java.util.*; public class LinkedList1{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Output: Ravi Vijay Ravi Ajay
Príklad Java LinkedList na pridanie prvkov
Tu vidíme rôzne spôsoby pridávania prvkov.
import java.util.*; public class LinkedList2{ public static void main(String args[]){ LinkedList ll=new LinkedList(); System.out.println('Initial list of elements: '+ll); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); System.out.println('After invoking add(E e) method: '+ll); //Adding an element at the specific position ll.add(1, 'Gaurav'); System.out.println('After invoking add(int index, E element) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Sonoo'); ll2.add('Hanumat'); //Adding second list elements to the first list ll.addAll(ll2); System.out.println('After invoking addAll(Collection c) method: '+ll); LinkedList ll3=new LinkedList(); ll3.add('John'); ll3.add('Rahul'); //Adding second list elements to the first list at specific position ll.addAll(1, ll3); System.out.println('After invoking addAll(int index, Collection c) method: '+ll); //Adding an element at the first position ll.addFirst('Lokesh'); System.out.println('After invoking addFirst(E e) method: '+ll); //Adding an element at the last position ll.addLast('Harsh'); System.out.println('After invoking addLast(E e) method: '+ll); } }
Initial list of elements: [] After invoking add(E e) method: [Ravi, Vijay, Ajay] After invoking add(int index, E element) method: [Ravi, Gaurav, Vijay, Ajay] After invoking addAll(Collection c) method: [Ravi, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addAll(int index, Collection c) method: [Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addFirst(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addLast(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat, Harsh]
Príklad Java LinkedList na odstránenie prvkov
Tu vidíme rôzne spôsoby odstránenia prvku.
import java.util.*; public class LinkedList3 { public static void main(String [] args) { LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); ll.add('Anuj'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Virat'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Amit'); System.out.println('Initial list of elements: '+ll); //Removing specific element from arraylist ll.remove('Vijay'); System.out.println('After invoking remove(object) method: '+ll); //Removing element on the basis of specific position ll.remove(0); System.out.println('After invoking remove(index) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Ravi'); ll2.add('Hanumat'); // Adding new elements to arraylist ll.addAll(ll2); System.out.println('Updated list : '+ll); //Removing all the new elements from arraylist ll.removeAll(ll2); System.out.println('After invoking removeAll() method: '+ll); //Removing first element from the list ll.removeFirst(); System.out.println('After invoking removeFirst() method: '+ll); //Removing first element from the list ll.removeLast(); System.out.println('After invoking removeLast() method: '+ll); //Removing first occurrence of element from the list ll.removeFirstOccurrence('Gaurav'); System.out.println('After invoking removeFirstOccurrence() method: '+ll); //Removing last occurrence of element from the list ll.removeLastOccurrence('Harsh'); System.out.println('After invoking removeLastOccurrence() method: '+ll); //Removing all the elements available in the list ll.clear(); System.out.println('After invoking clear() method: '+ll); } }
Initial list of elements: [Ravi, Vijay, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(object) method: [Ravi, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(index) method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] Updated list : [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit, Ravi, Hanumat] After invoking removeAll() method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeFirst() method: [Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeLast() method: [Gaurav, Harsh, Virat, Gaurav, Harsh] After invoking removeFirstOccurrence() method: [Harsh, Virat, Gaurav, Harsh] After invoking removeLastOccurrence() method: [Harsh, Virat, Gaurav] After invoking clear() method: []
Príklad Java LinkedList na zvrátenie zoznamu prvkov
import java.util.*; public class LinkedList4{ public static void main(String args[]){ LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); //Traversing the list of elements in reverse order Iterator i=ll.descendingIterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Output: Ajay Vijay Ravi
Príklad Java LinkedList: Kniha
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class LinkedListExample { public static void main(String[] args) { //Creating list of Books List list=new LinkedList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Výkon:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6