logo

Classe Java LinkedList

Jerarquia de classes de Java LinkedList

La classe Java LinkedList utilitza una llista doblement enllaçada per emmagatzemar els elements. Proporciona una estructura de dades de llista enllaçada. Hereta la classe AbstractList i implementa les interfícies List i Deque.

Els punts importants sobre Java LinkedList són:

  • La classe Java LinkedList pot contenir elements duplicats.
  • La classe Java LinkedList manté l'ordre d'inserció.
  • La classe Java LinkedList no està sincronitzada.
  • A la classe Java LinkedList, la manipulació és ràpida perquè no cal que es produeixi cap canvi.
  • La classe Java LinkedList es pot utilitzar com a llista, pila o cua.

Jerarquia de la classe LinkedList

Com es mostra al diagrama anterior, la classe Java LinkedList amplia la classe AbstractSequentialList i implementa les interfícies List i Deque.

un exemple d'un sistema operatiu de codi obert és

Llista doblement enllaçada

En el cas d'una llista doblement enllaçada, podem afegir o eliminar elements d'ambdós costats.

classe java LinkedList utilitzant una llista doblement enllaçada

Declaració de classe LinkedList

Vegem la declaració de la classe java.util.LinkedList.

 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable 

Constructors de Java LinkedList

Constructor Descripció
LinkedList() S'utilitza per construir una llista buida.
LinkedList(Col·lecció c) S'utilitza per construir una llista que conté els elements de la col·lecció especificada, en l'ordre en què són retornats per l'iterador de la col·lecció.

Mètodes de Java LinkedList

Mètode Descripció
suma booleana (E e) S'utilitza per afegir l'element especificat al final d'una llista.
void add (índex int, element E) S'utilitza per inserir l'element especificat a l'índex de posició especificat en una llista.
booleà addAll(Col·lecció c) S'utilitza per afegir tots els elements de la col·lecció especificada al final d'aquesta llista, en l'ordre en què són retornats per l'iterador de la col·lecció especificada.
booleà addAll(Col·lecció c) S'utilitza per afegir tots els elements de la col·lecció especificada al final d'aquesta llista, en l'ordre en què són retornats per l'iterador de la col·lecció especificada.
booleà addAll(índex int, col·lecció c) S'utilitza per afegir tots els elements de la col·lecció especificada, començant per la posició especificada de la llista.
void addFirst (E e) S'utilitza per inserir l'element donat al principi d'una llista.
void addLast (E e) S'utilitza per afegir l'element donat al final d'una llista.
buit clar () S'utilitza per eliminar tots els elements d'una llista.
Clon d'objecte() S'utilitza per retornar una còpia superficial d'una ArrayList.
booleà conté (Objecte o) S'utilitza per retornar true si una llista conté un element especificat.
Iterador descendentIterator() S'utilitza per retornar un iterador sobre els elements en un deque en ordre seqüencial invers.
element E () S'utilitza per recuperar el primer element d'una llista.
E get(índex int) S'utilitza per retornar l'element a la posició especificada en una llista.
I getFirst() S'utilitza per retornar el primer element d'una llista.
I getLast() S'utilitza per retornar l'últim element d'una llista.
int indexOf(Objecte o) S'utilitza per retornar l'índex en una llista de la primera ocurrència de l'element especificat, o -1 si la llista no conté cap element.
int lastIndexOf(Objecte o) S'utilitza per retornar l'índex en una llista de l'última ocurrència de l'element especificat, o -1 si la llista no conté cap element.
ListIterator listIterator (índex int) S'utilitza per retornar un iterador de llista dels elements en la seqüència adequada, començant a la posició especificada a la llista.
oferta booleana (E e) Afegeix l'element especificat com a darrer element d'una llista.
oferta booleanaPrimer(E e) Insereix l'element especificat al capdavant d'una llista.
Oferta booleanaLast(E e) Insereix l'element especificat al final d'una llista.
E mira () Recupera el primer element d'una llista
E peekFirst() Recupera el primer element d'una llista o retorna null si una llista està buida.
E peekLast() Recupera l'últim element d'una llista o retorna null si una llista està buida.
Enquesta E () Recupera i elimina el primer element d'una llista.
E pollFirst() Recupera i elimina el primer element d'una llista, o retorna null si una llista està buida.
E pollLast() Recupera i elimina l'últim element d'una llista, o retorna null si una llista està buida.
I pop() Obre un element de la pila representat per una llista.
empenta de buit (E e) Empeny un element a la pila representada per una llista.
E elimina () S'utilitza per recuperar i eliminar el primer element d'una llista.
E elimina (índex int) S'utilitza per eliminar l'element a la posició especificada en una llista.
eliminar booleà (Objecte o) S'utilitza per eliminar la primera ocurrència de l'element especificat en una llista.
E removeFirst() Elimina i retorna el primer element d'una llista.
booleà removeFirstOccurrence (Objecte o) S'utilitza per eliminar la primera ocurrència de l'element especificat en una llista (quan es recorre la llista de cap a final).
E removeLast() Elimina i retorna l'últim element d'una llista.
booleà removeLastOccurrence (Objecte o) Elimina l'última ocurrència de l'element especificat en una llista (quan es recorre la llista de cap a final).
Conjunt E (índex int, element E) Substitueix l'element a la posició especificada en una llista amb l'element especificat.
Objecte[] toArray() S'utilitza per retornar una matriu que conté tots els elements d'una llista en la seqüència adequada (des del primer fins a l'últim element).
T[] toArray(T[] a) Retorna una matriu que conté tots els elements en la seqüència adequada (des del primer fins a l'últim element); el tipus d'execució de la matriu retornada és el de la matriu especificada.
mida int () S'utilitza per retornar el nombre d'elements d'una llista.

Exemple de 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 

Exemple de Java LinkedList per afegir elements

Aquí, veiem diferents maneres d'afegir elements.

 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] 

Exemple de Java LinkedList per eliminar elements

Aquí, veiem diferents maneres d'eliminar un element.

arquitectura de von neumann
 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: [] 

Exemple de Java LinkedList per invertir una llista d'elements

 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 

Exemple de Java LinkedList: llibre

 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); } } } 

Sortida:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6