Klasa Java LinkedList koristi dvostruko povezani popis za pohranu elemenata. Pruža podatkovnu strukturu povezane liste. Nasljeđuje klasu AbstractList i implementira sučelja List i Deque.
Važne točke vezane uz Java LinkedList su:
- Klasa Java LinkedList može sadržavati duplikate elemenata.
- Klasa Java LinkedList održava redoslijed umetanja.
- Klasa Java LinkedList nije sinkronizirana.
- U klasi Java LinkedList, manipulacija je brza jer ne mora doći do pomaka.
- Java LinkedList klasa može se koristiti kao lista, hrpa ili red čekanja.
Hijerarhija klase LinkedList
Kao što je prikazano na gornjem dijagramu, klasa Java LinkedList proširuje klasu AbstractSequentialList i implementira sučelja List i Deque.
pokušaj catch blok u Javi
Dvostruko povezani popis
U slučaju dvostruko povezane liste, možemo dodati ili ukloniti elemente s obje strane.
Deklaracija klase LinkedList
Pogledajmo deklaraciju za klasu java.util.LinkedList.
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
Konstruktori Java LinkedList-a
Konstruktor | Opis |
---|---|
LinkedList() | Koristi se za izradu prazne liste. |
LinkedList (zbirka c) | Koristi se za izradu popisa koji sadrži elemente navedene zbirke, redoslijedom kojim ih vraća iterator zbirke. |
Metode Java LinkedList-a
metoda | Opis |
---|---|
Booleov zbroj (E e) | Koristi se za dodavanje navedenog elementa na kraj popisa. |
void add(int indeks, E element) | Koristi se za umetanje navedenog elementa na navedeno mjesto indeksa na popisu. |
boolean addAll(kolekcija c) | Koristi se za dodavanje svih elemenata u navedenoj zbirci na kraj ovog popisa, redoslijedom kojim ih je vratio iterator navedene zbirke. |
boolean addAll(kolekcija c) | Koristi se za dodavanje svih elemenata u navedenoj zbirci na kraj ovog popisa, redoslijedom kojim ih je vratio iterator navedene zbirke. |
boolean addAll(int indeks, zbirka c) | Koristi se za dodavanje svih elemenata u navedenoj kolekciji, počevši od navedenog položaja popisa. |
void addFirst(E e) | Koristi se za umetanje zadanog elementa na početak liste. |
void addLast(E e) | Koristi se za dodavanje zadanog elementa na kraj liste. |
praznina jasno() | Koristi se za uklanjanje svih elemenata s popisa. |
Klon objekta() | Koristi se za vraćanje plitke kopije ArrayList-a. |
Boolean sadrži (objekt o) | Koristi se za vraćanje true ako popis sadrži određeni element. |
Silazni iteratorIterator() | Koristi se za vraćanje iteratora preko elemenata u dequeu obrnutim redoslijedom. |
E element() | Koristi se za dohvaćanje prvog elementa popisa. |
E get(int index) | Koristi se za vraćanje elementa na navedeno mjesto na popisu. |
E getFirst() | Koristi se za vraćanje prvog elementa na popisu. |
E getLast() | Koristi se za vraćanje posljednjeg elementa na popisu. |
int indexOf(Object o) | Koristi se za vraćanje indeksa na popisu prvog pojavljivanja navedenog elementa ili -1 ako popis ne sadrži nijedan element. |
int lastIndexOf(Object o) | Koristi se za vraćanje indeksa na popisu posljednjeg pojavljivanja navedenog elementa ili -1 ako popis ne sadrži nijedan element. |
ListIterator listIterator(int indeks) | Koristi se za vraćanje popisa iteratora elemenata u ispravnom nizu, počevši od specificirane pozicije na popisu. |
Booleova ponuda (E e) | Dodaje navedeni element kao posljednji element popisa. |
Booleova ponudaPrva(E e) | Umeće navedeni element na početak liste. |
booleova ponudazadnja(E e) | Umeće navedeni element na kraj popisa. |
E zaviriti() | Dohvaća prvi element popisa |
E peekFirst() | Dohvaća prvi element popisa ili vraća null ako je popis prazan. |
E peekLast() | Dohvaća posljednji element popisa ili vraća null ako je popis prazan. |
E anketa() | Dohvaća i uklanja prvi element popisa. |
E pollFirst() | Dohvaća i uklanja prvi element popisa ili vraća null ako je popis prazan. |
E anketaZadnja() | Dohvaća i uklanja posljednji element popisa ili vraća null ako je popis prazan. |
i pop() | Izbacuje element iz hrpe predstavljen popisom. |
void push (E e) | Gura element na stog predstavljen popisom. |
E ukloni() | Koristi se za dohvaćanje i uklanjanje prvog elementa popisa. |
E ukloniti (indeks) | Koristi se za uklanjanje elementa na određenom mjestu na popisu. |
boolean ukloniti (objekt o) | Koristi se za uklanjanje prvog pojavljivanja navedenog elementa na popisu. |
E removeFirst() | Uklanja i vraća prvi element s popisa. |
boolean removeFirstOccurrence(Object o) | Koristi se za uklanjanje prvog pojavljivanja navedenog elementa na popisu (kada prelazite popis od glave do repa). |
E uklonizadnji() | Uklanja i vraća posljednji element s popisa. |
boolean removeLastOccurrence(Object o) | Uklanja posljednje pojavljivanje navedenog elementa na popisu (kada prelazite popis od glave do repa). |
E skup (int indeks, E element) | Zamjenjuje element na navedenom mjestu na popisu navedenim elementom. |
Object[] toArray() | Koristi se za vraćanje niza koji sadrži sve elemente na popisu u ispravnom nizu (od prvog do zadnjeg elementa). |
T[] u Niz(T[] a) | Vraća niz koji sadrži sve elemente u odgovarajućem nizu (od prvog do zadnjeg elementa); tip vremena izvođenja vraćenog niza je onaj navedenog niza. |
int size() | Koristi se za vraćanje broja elemenata na popisu. |
Primjer 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
Java LinkedList primjer za dodavanje elemenata
Ovdje vidimo različite načine dodavanja elemenata.
pretvaranje niza u cijeli broj
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 primjer za uklanjanje elemenata
Ovdje vidimo različite načine uklanjanja elementa.
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 Primjer obrnutog popisa elemenata
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 Primjer: Knjiga
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); } } }
Izlaz:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6