A Java LinkedList osztály duplán linkelt listát használ az elemek tárolására. Ez egy linkelt lista adatszerkezetet biztosít. Megörökli az AbstractList osztályt, és megvalósítja a List és Deque interfészt.
A Java LinkedList fontos pontjai a következők:
- A Java LinkedList osztály duplikált elemeket tartalmazhat.
- A Java LinkedList osztály fenntartja a beillesztési sorrendet.
- A Java LinkedList osztály nincs szinkronizálva.
- A Java LinkedList osztályban a manipuláció gyors, mivel nincs szükség eltolásra.
- A Java LinkedList osztály használható listaként, veremként vagy sorként.
A LinkedList osztály hierarchiája
Amint a fenti diagramon látható, a Java LinkedList osztály kiterjeszti az AbstractSequentialList osztályt, és megvalósítja a List és Deque felületeket.
youtube vlc médialejátszó letöltése
Duplán linkelt lista
Duplán linkelt lista esetén mindkét oldalról tudunk elemeket hozzáadni vagy eltávolítani.
LinkedList osztálydeklaráció
Lássuk a java.util.LinkedList osztály deklarációját.
concat java karakterlánc
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
A Java LinkedList konstruktorai
Konstruktőr | Leírás |
---|---|
LinkedList() | Üres lista összeállítására szolgál. |
LinkedList (c gyűjtemény) | A megadott gyűjtemény elemeit tartalmazó lista összeállítására szolgál, sorrendben, azokat a gyűjtemény iterátora adja vissza. |
A Java LinkedList módszerei
Módszer | Leírás |
---|---|
logikai összeadás(E e) | Arra szolgál, hogy a megadott elemet hozzáfűzze a lista végéhez. |
void add(int index, E elem) | A megadott elem beszúrására szolgál a listában a megadott pozícióindexbe. |
logikai addAll(c gyűjtemény) | Ez arra szolgál, hogy a megadott gyűjtemény összes elemét hozzáfűzze a lista végéhez, abban a sorrendben, ahogyan azokat a megadott gyűjtemény iterátora visszaküldi. |
logikai addAll(c gyűjtemény) | Ez arra szolgál, hogy a megadott gyűjtemény összes elemét hozzáfűzze a lista végéhez, abban a sorrendben, ahogyan azokat a megadott gyűjtemény iterátora visszaküldi. |
logikai addAll(int index, c gyűjtemény) | A megadott gyűjtemény összes elemének hozzáfűzésére szolgál, a lista megadott helyétől kezdve. |
void addFirst(E e) | Az adott elem beszúrására szolgál a lista elejére. |
void addLast(E e) | Ez arra szolgál, hogy az adott elemet a lista végéhez fűzze. |
void clear() | A lista összes elemének eltávolítására szolgál. |
Objektum klón() | Egy ArrayList sekély másolatának visszaadására szolgál. |
logikai érték tartalmazza (o objektum) | Ez igazat ad vissza, ha egy lista meghatározott elemet tartalmaz. |
Iterátor descendingIterator() | Arra használják, hogy egy iterátort adjon vissza az elemekre egy deque-ben, fordított sorrendben. |
E elem() | A lista első elemének lekérésére szolgál. |
E get(int index) | Ez arra szolgál, hogy az elemet a listában a megadott pozícióban adja vissza. |
E getFirst() | A lista első elemének visszaadására szolgál. |
E getLast() | A lista utolsó elemének visszaadására szolgál. |
int indexOf(O objektum) | Ez az index visszaadására szolgál a megadott elem első előfordulásának listájában, vagy -1, ha a lista nem tartalmaz elemet. |
int lastIndexOf(O objektum) | Az index visszaadására szolgál a megadott elem legutóbbi előfordulásának listájában, vagy -1, ha a lista nem tartalmaz elemet. |
ListIterator listIterator(int index) | Ez arra szolgál, hogy visszaadja az elemek lista-iterátorát a megfelelő sorrendben, a lista megadott helyétől kezdve. |
logikai ajánlat (E e) | A megadott elemet a lista utolsó elemeként adja hozzá. |
logikai ajánlat első (E e) | A megadott elemet a lista elejére szúrja be. |
logikai ajánlatLast(E e) | A megadott elemet beszúrja a lista végére. |
E kukucskál() | Lekéri a lista első elemét |
E peekFirst() | Lekéri a lista első elemét, vagy nullát ad vissza, ha a lista üres. |
E peekLast() | Lekéri a lista utolsó elemét, vagy nullát ad vissza, ha a lista üres. |
E szavazás() | Lekéri és eltávolítja a lista első elemét. |
E pollFirst() | Lekéri és eltávolítja a lista első elemét, vagy nullát ad vissza, ha a lista üres. |
E pollLast() | Lekéri és eltávolítja a lista utolsó elemét, vagy nullát ad vissza, ha a lista üres. |
És pop() | Kiugrik egy elemet a lista által képviselt veremből. |
üres nyomás (E e) | Egy elemet a lista által képviselt verembe helyez. |
E Remove() | A lista első elemének lekérésére és eltávolítására szolgál. |
E eltávolítás (int index) | A lista meghatározott helyén lévő elem eltávolítására szolgál. |
logikai eltávolítás (O-objektum) | A megadott elem első előfordulásának eltávolítására szolgál a listából. |
E RemoveFirst() | Eltávolítja és visszaadja a lista első elemét. |
logikai távoli első előfordulás (O-objektum) | A megadott elem első előfordulásának eltávolítására szolgál a listából (a lista fejétől a farokig való bejárásakor). |
E RemoveLast() | Eltávolítja és visszaadja a lista utolsó elemét. |
Boolean RemoveLastOccurrence(O-objektum) | Eltávolítja a megadott elem utolsó előfordulását a listából (a lista fejétől a végéig való bejáráskor). |
E halmaz(int index, E elem) | Lecseréli a listában a megadott helyen lévő elemet a megadott elemre. |
Object[] toArray() | Egy olyan tömb visszaadására szolgál, amely a lista összes elemét tartalmazza megfelelő sorrendben (az elsőtől az utolsó elemig). |
T[] toArray(T[] a) | Egy tömböt ad vissza, amely az összes elemet tartalmazza a megfelelő sorrendben (az elsőtől az utolsó elemig); a visszaadott tömb futásidejű típusa a megadott tömbé. |
int size() | A lista elemeinek számának visszaadására szolgál. |
Java LinkedList példa
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
Java LinkedList példa elemek hozzáadásához
Itt különböző módokat láthatunk az elemek hozzáadására.
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]
Java LinkedList példa elemek eltávolítására
Itt különböző módokat látunk egy elem eltávolítására.
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: []
Java LinkedList Példa az elemek listájának megfordításához
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
Java LinkedList Példa: Könyv
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); } } }
Kimenet:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6