在本文中,您將了解 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。