En este artículo, aprenderá la diferencia entre LinkedList y LinkedHashSet en Java.
Requisito previo: LinkedList : LinkedHashSet
La clase LinkedList implementa la interfaz List y Deque y se extiende desde la clase AbstractSequentialList. La clase LinkedList usa una lista doblemente enlazada para almacenar los elementos. Proporciona una estructura de datos de lista enlazada.
La clase Java LinkedHashSet es una tabla hash y una implementación de lista enlazada de la interfaz del conjunto. Hereda la clase HashSet e implementa la interfaz Set. Implementaciones LinkedHashSet de la interfaz Set, existen algunas diferencias entre ellas.
Veamos la diferencia entre LinkedList y LinkedHashSet en Java
- Herencia:
- Cómo funciona internamente
La clase Java LinkedList usa una lista doblemente enlazada para almacenar los elementos, mientras que LinkedHashSet usa LinkedHashMap internamente para almacenar sus elementos. - Unicidad:
la clase LinkedList puede contener elementos duplicados, mientras que LinkedHashSet contiene elementos únicos solo como HashSet. - Inserción:
LinkedList en el caso de una lista doblemente enlazada, podemos agregar o eliminar elementos de ambos lados mientras que LinkedHashSet se inserta al final. - Constructor:
LinkedList tiene dos constructores LinkedList() y LinkedList(Colección o) mientras que LinkedHashSet tiene cuatro constructores HashSet(), HashSet(Colección c), LinkedHashSet(int capacidad) y LinkedHashSet(int capacidad, float fillRatio) - Operaciones
de inserción, eliminación y recuperación: rendimiento de las operaciones de inserción, eliminación y recuperación de LinkedList del pedido O(n), mientras que LinkedHashSet también proporciona el rendimiento del pedido O(1) para las operaciones de inserción, eliminación y recuperación. - comparar los elementos:
LinkedList usa el método equals() LinkedHashSet también usa los métodos equals() y hashCode() para comparar los elementos. - Elementos nulos:
LinkedList permite cualquier cantidad de valores nulos, mientras que LinkedHashSet también permite un máximo de un elemento nulo. - Sintaxis:
la sintaxis de LinkedList es:clase pública LinkedList extiende AbstractSequentialList implementa List, Deque, Cloneable, SerializableLa sintaxis de LinkedHashSet es:
clase pública LinkedHashSet extiende HashSet implementa Set, Cloneable, Serializable
Ejemplo de lista enlazada:
// Java code for Linked List implementation import java.util.*; public class Test { public static void main(String args[]) { // Creating object of class linked list LinkedList<String> object = new LinkedList<String>(); // Adding elements to the linked list // and see carefully element are duplicate, null object.add("A"); object.add("B"); object.addLast("C"); object.addFirst("D"); object.add(2, "E"); object.add(null); object.add(null); System.out.println("Linked list : " + object); System.out.println("Size of List:" + object.size()); } }
Producción:
Linked list : [D, A, E, B, C, null, null] Size of List:7
Ejemplo de LinkedHashSet:
import java.util.LinkedHashSet; public class Demo { public static void main(String[] args) { LinkedHashSet<String> linkedset = new LinkedHashSet<String>(); // Adding element to LinkedHashSet linkedset.add("A"); linkedset.add("B"); linkedset.add("C"); linkedset.add("D"); System.out.println("Original LinkedHashSet:" + linkedset); System.out.println("Size of LinkedHashSet = " + linkedset.size()); // trying to add duplicate linkedset.add("A"); System.out.println("After adding duplicate element " + linkedset); System.out.println("Size of LinkedHashSet = " + linkedset.size()); // trying to add null value more than one linkedset.add(null); linkedset.add(null); System.out.println("After adding two null element " + linkedset); System.out.println("Size of LinkedHashSet = " + linkedset.size()); } }
Producción:
Original LinkedHashSet:[A, B, C, D] Size of LinkedHashSet = 4 After adding duplicate element [A, B, C, D] Size of LinkedHashSet = 4 After adding two null element [A, B, C, D, null] Size of LinkedHashSet = 5