Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่าง HashTable และพจนานุกรมใน C #


ทั้ง 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 จะรักษาลำดับการแทรกของค่าที่เก็บไว้