ความแตกต่างหลัก: ในวิทยาการคอมพิวเตอร์ hashTable หรือ hashMap หมายถึงโครงสร้างข้อมูลที่เชื่อมโยงคีย์ (ชื่อ) กับค่า (แอตทริบิวต์) ใน Java มีความแตกต่างที่สำคัญระหว่างสองอย่างดังนี้: HashTable ถูกซิงโครไนซ์และ HashMap ไม่ได้ซิงโครไนซ์ HashTable ไม่อนุญาตให้มีปุ่มว่าง อย่างไรก็ตาม HashMap อนุญาตให้มีคีย์ null เดียวและจำนวนค่า null ใด ๆ
HashMap และ hashTable เป็นโครงสร้างข้อมูลที่เป็นส่วนหนึ่งของคอลเลกชัน Java พวกเขาใช้คู่ค่าคีย์เพื่อเก็บวัตถุ พวกเขาทั้งสองมีความคล้ายคลึงกันบางอย่างเช่นใช้อินเตอร์เฟส java.util.Map และทำงานกับหลักการของการแฮช อย่างไรก็ตามเมื่อเราอ้างถึงพวกเขาในบริบทของภาษาการเขียนโปรแกรม Java มีความแตกต่างมากมายระหว่างทั้งสอง
hashTable ใช้เพื่อจัดเก็บและดึงค่าโดยใช้คีย์ สำหรับจุดประสงค์นี้กุญแจต้องไม่ซ้ำกัน ตารางที่ใช้ในการจัดเก็บคู่คีย์และค่าเรียกว่าตารางแฮช ตารางแฮชจะเกิดขึ้นโดยใช้อัลกอริทึมที่แฮชคีย์ ฟังก์ชันแฮชนี้ใช้เพื่อกำหนดตัวเลขให้กับข้อมูลอินพุตจากนั้นข้อมูลจะถูกเก็บไว้เป็นดัชนีอาร์เรย์ซึ่งสอดคล้องกับตัวเลขที่คำนวณหรือประเมิน
เปรียบเทียบระหว่าง HashMap และ HashTable:
HashMap | HashTable | |
การประสานข้อมูล | มันไม่ได้ทำข้อมูลให้ตรงกัน | มันจะถูกซิงโครไนซ์ (ปลอดภัยเธรด) |
ค่า Null | อนุญาตให้ค่า Null เป็นคีย์และค่า | มันไม่อนุญาตให้มีค่า Null |
บทนำในภาษาจาวา | Java เวอร์ชัน 1.2 | ชุดพัฒนาจาวารุ่นแรก |
ประสิทธิภาพ | ค่อนข้างดีกว่า | ค่อนข้างแย่ |
ขยาย | มันขยายคลาส AbstractMap | มันขยายคลาสพจนานุกรมซึ่งค่อนข้างเก่า |
การวนซ้ำของคีย์ | Iterator ใช้สำหรับทำซ้ำปุ่ม | อินเตอร์เฟซการแจงนับจะใช้สำหรับการทำซ้ำกุญแจ |
การประยุกต์ใช้งาน | ดีกว่าสำหรับแอปพลิเคชันที่ไม่ได้เป็นเธรด | โดยทั่วไปแล้วปลอดภัยสำหรับแอปพลิเคชันแบบมัลติเธรด |
การทำให้เป็นอันดับ | ไม่ต่อเนื่อง | ต่อเนื่องกัน |
ทางเลือก | หนึ่งสามารถใช้ hashMap พร้อมกันสำหรับสภาพแวดล้อมแบบมัลติเธรด | ไม่มีทางเลือกดังกล่าว |