La clase Java LinkedList utiliza una lista doblemente enlazada para almacenar los elementos. Proporciona una estructura de datos de lista vinculada. Hereda la clase AbstractList e implementa las interfaces List y Deque.
Los puntos importantes sobre Java LinkedList son:
- La clase Java LinkedList puede contener elementos duplicados.
- La clase Java LinkedList mantiene el orden de inserción.
- La clase Java LinkedList no está sincronizada.
- En la clase Java LinkedList, la manipulación es rápida porque no es necesario que se produzcan cambios.
- La clase Java LinkedList se puede utilizar como lista, pila o cola.
Jerarquía de la clase LinkedList
Como se muestra en el diagrama anterior, la clase Java LinkedList extiende la clase AbstractSequentialList e implementa las interfaces List y Deque.
comparación de cadenas en java
Lista doblemente enlazada
En el caso de una lista doblemente enlazada, podemos agregar o quitar elementos de ambos lados.
Declaración de clase LinkedList
Veamos la declaración de la clase java.util.LinkedList.
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
Constructores de Java LinkedList
Constructor | Descripción |
---|---|
Lista enlazada() | Se utiliza para construir una lista vacía. |
ListaEnlazada(Colección c) | Se utiliza para construir una lista que contiene los elementos de la colección especificada, en el orden en que los devuelve el iterador de la colección. |
Métodos de Java LinkedList
Método | Descripción |
---|---|
suma booleana (E e) | Se utiliza para agregar el elemento especificado al final de una lista. |
agregar vacío (índice int, elemento E) | Se utiliza para insertar el elemento especificado en el índice de posición especificado en una lista. |
booleano addAll (Colección c) | Se utiliza para agregar todos los elementos de la colección especificada al final de esta lista, en el orden en que los devuelve el iterador de la colección especificada. |
booleano addAll (Colección c) | Se utiliza para agregar todos los elementos de la colección especificada al final de esta lista, en el orden en que los devuelve el iterador de la colección especificada. |
booleano addAll(índice int, Colección c) | Se utiliza para agregar todos los elementos de la colección especificada, comenzando en la posición especificada de la lista. |
anular agregarPrimero(E e) | Se utiliza para insertar el elemento dado al principio de una lista. |
anular agregarLast(E e) | Se utiliza para agregar el elemento dado al final de una lista. |
vacío claro() | Se utiliza para eliminar todos los elementos de una lista. |
Clon de objeto() | Se utiliza para devolver una copia superficial de un ArrayList. |
booleano contiene (Objeto o) | Se utiliza para devolver verdadero si una lista contiene un elemento específico. |
Iterador descendenteIterador() | Se utiliza para devolver un iterador sobre los elementos de una deque en orden secuencial inverso. |
elemento E() | Se utiliza para recuperar el primer elemento de una lista. |
E obtener (índice int) | Se utiliza para devolver el elemento en la posición especificada en una lista. |
E obtenerPrimero() | Se utiliza para devolver el primer elemento de una lista. |
E obtenerLast() | Se utiliza para devolver el último elemento de una lista. |
int indexOf(Objeto o) | Se utiliza para devolver el índice en una lista de la primera aparición del elemento especificado, o -1 si la lista no contiene ningún elemento. |
int último índice de (objeto o) | Se utiliza para devolver el índice en una lista de la última aparición del elemento especificado, o -1 si la lista no contiene ningún elemento. |
ListIterator listIterator (índice int) | Se utiliza para devolver un iterador de lista de elementos en la secuencia adecuada, comenzando en la posición especificada en la lista. |
oferta booleana (E e) | Agrega el elemento especificado como el último elemento de una lista. |
oferta booleanaPrimero(E e) | Inserta el elemento especificado al principio de una lista. |
oferta booleanaÚltima(E e) | Inserta el elemento especificado al final de una lista. |
E vistazo() | Recupera el primer elemento de una lista. |
E vistazo primero() | Recupera el primer elemento de una lista o devuelve nulo si una lista está vacía. |
E vistazoÚltimo() | Recupera el último elemento de una lista o devuelve nulo si una lista está vacía. |
encuesta electrónica() | Recupera y elimina el primer elemento de una lista. |
Encuesta EPrimera() | Recupera y elimina el primer elemento de una lista, o devuelve nulo si una lista está vacía. |
E encuestaLast() | Recupera y elimina el último elemento de una lista, o devuelve nulo si una lista está vacía. |
Y pop() | Extrae un elemento de la pila representado por una lista. |
empuje vacío (E e) | Empuja un elemento a la pila representada por una lista. |
mi eliminar() | Se utiliza para recuperar y eliminar el primer elemento de una lista. |
E eliminar (índice int) | Se utiliza para eliminar el elemento en la posición especificada en una lista. |
booleano eliminar (Objeto o) | Se utiliza para eliminar la primera aparición del elemento especificado en una lista. |
E eliminarPrimero() | Elimina y devuelve el primer elemento de una lista. |
booleano eliminarPrimeraOcurrencia(Objeto o) | Se utiliza para eliminar la primera aparición del elemento especificado en una lista (al recorrer la lista de principio a fin). |
E eliminarÚltimo() | Elimina y devuelve el último elemento de una lista. |
booleano eliminarLastOccurrence(Objeto o) | Elimina la última aparición del elemento especificado en una lista (al recorrer la lista de principio a fin). |
Conjunto E (índice int, elemento E) | Reemplaza el elemento en la posición especificada en una lista con el elemento especificado. |
Objeto[] toArray() | Se utiliza para devolver una matriz que contiene todos los elementos de una lista en la secuencia adecuada (del primero al último elemento). |
T[] aArray(T[] a) | Devuelve una matriz que contiene todos los elementos en la secuencia adecuada (del primero al último elemento); el tipo de tiempo de ejecución de la matriz devuelta es el de la matriz especificada. |
tamaño entero() | Se utiliza para devolver el número de elementos de una lista. |
Ejemplo de lista enlazada de Java
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
Ejemplo de Java LinkedList para agregar elementos
Aquí vemos diferentes formas de agregar elementos.
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]
Ejemplo de Java LinkedList para eliminar elementos
Aquí vemos diferentes formas de eliminar un elemento.
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: []
Ejemplo de Java LinkedList para invertir una lista de elementos
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
Ejemplo de lista enlazada de Java: libro
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); } } }
Producción:
10 de 100.00
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6