在本文中,您将了解 java 中 LinkedList 和 LinkedHashSet 之间的区别。
先决条件: LinkedList:LinkedHashSet
LinkedList 类实现 List 和 Deque 接口并扩展自 AbstractSequentialList 类。 LinkedList类使用双向链表来存储元素。它提供了linked-list数据结构。
Java LinkedHashSet 类是 set 接口的哈希表和链表实现。它继承HashSet类并实现Set接口。 LinkedHashSet Set接口的实现,它们之间存在一些差异。
让我们看看 Java 中 LinkedList 和 LinkedHashSet 之间的区别
- Inheritance:
- 内部如何运作
Java LinkedList 类使用双向链表来存储元素,而 LinkedHashSet 使用LinkedHashMap内部存储它的元素。 - uniqueness:
LinkedList 类可以包含重复元素,而 LinkedHashSet 只能像 HashSet 一样包含唯一元素。 - Insertion:
LinkedList 在双向链表的情况下,我们可以从两侧添加或删除元素,而 LinkedHashSet 在末尾插入。 - Constructor:
LinkedList 有两个构造函数 LinkedList() 和 LinkedList(Collection o) 而 LinkedHashSet 有四个构造函数 HashSet()、HashSet(Collection c)、LinkedHashSet(intcapacity) 和 LinkedHashSet(intcapacity, float fillRatio) - 插入、删除和检索操作:
LinkedList 插入、删除和检索操作的性能为 O(n) 级,而 LinkedHashSet 还提供了 O(1) 级的插入、删除和检索操作性能。 - 比较元素:
LinkedList使用equals()方法 LinkedHashSet还使用equals()和hashCode()方法来比较元素。 - 空元素:
LinkedList 允许任意数量的空值,而 LinkedHashSet 还允许最多一个空元素。 - 用法:
LinkedList语法是:公共类 LinkedList 扩展 AbstractSequentialList 实现 List、Deque、Cloneable、SerializableLinkedHashSet语法是:
公共类LinkedHashSet扩展HashSet实现Set、Cloneable、Serialized
链表示例:
// 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());
}
}
输出:
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<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());
}
}
输出:
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
相关用法
- Java LinkedList add()用法及代码示例
- Java LinkedList addAll()用法及代码示例
- Java LinkedList addFirst()用法及代码示例
- Java LinkedList addLast()用法及代码示例
- Java LinkedList clear()用法及代码示例
- Java LinkedList clone()用法及代码示例
- Java LinkedList contains()用法及代码示例
- Java LinkedList descendingIterator()用法及代码示例
- Java LinkedList element()用法及代码示例
- Java LinkedList get()用法及代码示例
- Java LinkedList getFirst()用法及代码示例
- Java LinkedList getLast()用法及代码示例
- Java LinkedList indexOf()用法及代码示例
- Java LinkedList lastIndexOf()用法及代码示例
- Java LinkedList listIterator()用法及代码示例
- Java LinkedList pop()用法及代码示例
- Java LinkedList push()用法及代码示例
- Java LinkedList remove()用法及代码示例
- Java LinkedList removeFirst()用法及代码示例
- Java LinkedList removeFirstOccurrence()用法及代码示例
- Java LinkedList removeLast()用法及代码示例
- Java LinkedList removeLastOccurrence()用法及代码示例
- Java LinkedList set()用法及代码示例
- Java LinkedList size()用法及代码示例
- Java LinkedList spliterator()用法及代码示例
注:本文由纯净天空筛选整理自Rajput-Ji大神的英文原创作品 Difference Between LinkedList and LinkedHashSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。