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

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

HashMap

  • Hash Table implementation ของ Map
  • Implements: Map, Cloneable, Serializable
  • อนุญาต 1 null key และ หลาย null values
  • เร็ว: O(1) average สำหรับ get/put
  • ไม่เรียงลำดับ Key → รองรับ Heterogeneous keys
  • ใช้ equals() เปรียบเทียบ Key
  • Method พื้นฐาน: keySet(), get(), put()

TreeMap

  • Red-Black Tree implementation (Self-balancing BST)
  • Implements: NavigableMap, Cloneable, Serializable
  • ไม่อนุญาต null key (แต่ null values ได้หลายตัว)
  • ช้ากว่า: O(log n) สำหรับ add/remove/contains
  • เรียงลำดับ Key ตาม Natural Order (Ascending) → Key ต้อง Homogeneous (Comparable)
  • ใช้ compareTo() หรือ Comparator เปรียบเทียบ Key
  • Method เยอะ: tailMap(), firstKey(), lastKey(), pollFirstEntry(), pollLastEntry(), ฯลฯ

สรุป

คุณสมบัติHashMapTreeMap
โครงสร้างHash TableRed-Black Tree
Null Keyได้ 1 ตัวไม่ได้
ความเร็วO(1) เร็วO(log n) ช้ากว่า
ลำดับ Keyไม่เรียงเรียง Ascending (Natural Order)
Key TypeHeterogeneous ได้Homogeneous (Comparable)
MethodsBasicRich (NavigableMap)
ใช้เมื่อไม่ต้องการเรียง, ต้องการความเร็วต้องการ Key เรียงลำดับ, Range queries