ทั้ง HashTable และ Dictionary เป็นประเภทของโครงสร้างข้อมูลที่ใช้เก็บข้อมูล โครงสร้างข้อมูลทั้งสองนี้เก็บข้อมูลที่เก็บไว้เป็นคู่ของค่าคีย์
บนพื้นฐานของความแตกต่างระหว่างคุณสมบัติหลักของสิ่งเหล่านี้ เราสามารถแยกความแตกต่างระหว่าง HashTable และพจนานุกรมได้ดังนี้ -
ซีเนียร์ เลขที่ | คีย์ | HashTable | พจนานุกรม |
---|---|---|---|
1 | คำจำกัดความ | HashTable เป็นประเภทคอลเล็กชันที่ไม่ใช่แบบทั่วไปซึ่งใช้เพื่อจัดเก็บข้อมูลในคู่คีย์/ค่าและกำหนดไว้ใน System.Collections เนมสเปซ | ในทางกลับกัน Dictionary เป็นคอลเล็กชันประเภททั่วไปที่กำหนดไว้ใน System.Collection.Generics เนมสเปซที่เก็บข้อมูลในรูปแบบของคู่คีย์/ค่าด้วย |
2 | ประเภทข้อมูล | ใน HashTable ข้อมูลประเภทข้อมูลเดียวกันหรือต่างกันสามารถจัดเก็บเป็นคีย์และค่าได้ ไม่มีการจำกัดคีย์และค่าของประเภทข้อมูลเดียวกัน จากนั้นจึงเก็บได้เฉพาะใน HashTable เท่านั้น และยังไม่จำเป็นต้องระบุประเภทของคีย์และค่าอีกด้วย | ในทางกลับกัน ในกรณีของคีย์และค่าของพจนานุกรมต้องเป็น DataType เดียวกัน จะถูกเก็บไว้ในพจนานุกรมเท่านั้นและต้องระบุประเภทของคีย์และค่าในขณะที่สร้าง |
3 | การดึงข้อมูล | ในกรณีของ HashTable การดึงข้อมูลจะช้ากว่าเนื่องจากการชกมวยและการแกะกล่องเมื่อเปรียบเทียบกับในพจนานุกรม | ในทางกลับกัน ในกรณีที่การดึงข้อมูลพจนานุกรมเร็วขึ้นเนื่องจากไม่มีการชกมวยและการแกะกล่องเกิดขึ้นในกรณีของพจนานุกรม |
4 | ค่า Null | ในกรณีของค่า null ของ HashTable ที่จัดการเมื่อเข้าถึงคีย์ที่ไม่มีอยู่ใน HashTable ที่กำหนด ค่า null จะส่งกลับเป็นผลลัพธ์ | ในทางกลับกัน ในกรณีของพจนานุกรม จะเกิดข้อผิดพลาดหากพยายามเข้าถึงคีย์ที่ไม่มีอยู่ในพจนานุกรมที่กำหนด |
5 | ลำดับข้อมูล | HashTable ไม่ได้รักษาลำดับของข้อมูลค่าคีย์ที่แทรกไว้ | ในทางกลับกัน Dictionary จะรักษาลำดับการแทรกของค่าที่เก็บไว้ |