ในวิทยาการคอมพิวเตอร์ Associative array, map, symbol table, หรือ dictionary เป็น abstract data type ประกอบด้วยชุดคู่ (key, value) โดยแต่ละ key ปรากฏได้สูงสุด 1 ครั้ง Dictionary เรียกอีกอย่างว่า map
Dictionary problem เป็นปัญหาคลาสสิก: ออกแบบโครงสร้างข้อมูลรักษาชุดข้อมูลระหว่าง search, delete, insert มีหลายการ implement:
- Hash Table implementation
- Tree-Based Implementation (Self-balancing และ Unbalanced trees)
- List based implementation
เมื่อไหร่ควรใช้ Dictionary
Dictionary ไม่ใช่ silver bullet ควรพิจารณา:
- Inserts ช้า อ่านเร็วกว่า tree
- ใช้สำหรับ fast lookups เช่น cache, database indexing, symbol tables
- ลำดับสมาชิกไม่สำคัญ
- Key ทั้งหมด unique
เมธอดที่จะนำไปใช้
Dictionary มี API ชัดเจน เราจะ implement basic API:
- get(): ดึงสมาชิกด้วย key
- put(): ใส่ key-value pair
- hasKey(): ตรวจสอบ key มีอยู่หรือไม่
- delete(): ลบ key ที่กำหนด
- clear(): ล้างทุก key-value pairs
- keys(): คืน keys ทั้งหมดเป็นอาร์เรย์
- values(): คืน values ทั้งหมดเป็นอาร์เรย์