📜  Java中LinkedList和LinkedHashSet的区别

📅  最后修改于: 2022-05-13 01:54:24.766000             🧑  作者: Mango

Java中LinkedList和LinkedHashSet的区别

在本文中,您将了解Java中 LinkedList 和 LinkedHashSet 之间的区别。

先决条件: LinkedList:LinkedHashSet

LinkedList 类实现 List 和 Deque 接口并从 AbstractSequentialList 类扩展。 LinkedList 类使用双向链表来存储元素。它提供了一个链表数据结构。

Java LinkedHashSet 类是一个哈希表和链表集合接口的实现。它继承了HashSet类并实现了Set接口。 Set 接口的 LinkedHashSet 实现,它们之间存在一些差异。

让我们看看Java中 LinkedList 和 LinkedHashSet 之间的区别
  1. 遗产:
  2. 如何在内部工作
    Java LinkedList 类使用双向链表来存储元素,而 LinkedHashSet 在内部使用 LinkedHashMap 来存储它的元素。
  3. 独特性:
    LinkedList 类可以包含重复元素,而 LinkedHashSet 只包含唯一元素,如 HashSet。
  4. 插入:
    LinkedList 在双向链表的情况下,我们可以在 LinkedHashSet 在末尾插入时从两侧添加或删除元素。
  5. 构造函数:
    LinkedList 有两个构造函数 LinkedList() 和 LinkedList(Collection o) 而 LinkedHashSet 有四个构造函数 HashSet(), HashSet(Collection c), LinkedHashSet(int capacity) 和 LinkedHashSet(int capacity, float fillRatio)
  6. 插入、移除和检索操作:
    LinkedList 的插入、删除和检索操作的性能为 O(n),而 LinkedHashSet 的插入、删除和检索操作的性能也为 O(1)。
  7. 比较元素:
    LinkedList 使用equals() 方法 LinkedHashSet 也使用equals() 和hashCode() 方法来比较元素。
  8. 空元素:
    LinkedList 允许任意数量的空值,而 LinkedHashSet 也允许最多一个空元素。
  9. 句法:
    LinkedList 语法是:
    公共类 LinkedList 扩展 AbstractSequentialList 实现 List、Deque、Cloneable、Serializable

    LinkedHashSet 语法是:

    公共类 LinkedHashSet 扩展 HashSet 实现 Set、Cloneable、Serializable

链表示例:

// 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 object = new LinkedList();
  
        // 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());
    }
}

输出:

Linked list : [D, A, E, B, C, null, null]
Size of List:7

LinkedHashSet 示例:

import java.util.LinkedHashSet;
public class Demo {
    public static void main(String[] args)
    {
        LinkedHashSet linkedset = new LinkedHashSet();
  
        // 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());
    }
}

输出:

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