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(), ฯลฯ
สรุป
| คุณสมบัติ | HashMap | TreeMap |
|---|---|---|
| โครงสร้าง | Hash Table | Red-Black Tree |
| Null Key | ได้ 1 ตัว | ไม่ได้ |
| ความเร็ว | O(1) เร็ว | O(log n) ช้ากว่า |
| ลำดับ Key | ไม่เรียง | เรียง Ascending (Natural Order) |
| Key Type | Heterogeneous ได้ | Homogeneous (Comparable) |
| Methods | Basic | Rich (NavigableMap) |
| ใช้เมื่อ | ไม่ต้องการเรียง, ต้องการความเร็ว | ต้องการ Key เรียงลำดับ, Range queries |