Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง HashMap และ LinkedHashMap ใน Java

HashMap

  • ไม่รักษาลำดับการ insert (Insertion order not preserved)
  • ใช้ HashTable ภายใน
  • extends AbstractMap, implements Map, Cloneable, Serializable
  • เพิ่มใน JDK 1.2
  • Overhead ต่ำ
  • Performance: O(1) สำหรับ get/put (average)

LinkedHashMap

  • รักษาลำดับการ insert (Insertion-order preserved)
  • ใช้ HashTable + Doubly Linked List ภายใน
  • extends HashMap, implements Map, Cloneable, Serializable
  • เพิ่มใน JDK 1.4
  • Overhead สูงกว่า (ต้อง maintain linked list)
  • Iteration ตามลำดับที่ insert

สรุป

คุณสมบัติHashMapLinkedHashMap
ลำดับการ Insertไม่รักษารักษา (Insertion-order)
โครงสร้างภายในHashTableHashTable + Doubly Linked List
ExtendsAbstractMapHashMap
Overheadต่ำสูงกว่า
ใช้เมื่อไม่ต้องการลำดับต้องการลำดับการ insert

หมายเหตุ

LinkedHashMap ยังมี Constructor LinkedHashMap(int capacity, float loadFactor, boolean accessOrder) ที่สามารถเรียงตาม Access Order (LRU Cache) ได้