ความแตกต่างระหว่าง HashMap และ Hashset เป็นคำถามที่พบบ่อยที่สุดในการสัมภาษณ์ Java หากเฟรมเวิร์กคอลเลกชันและการสัมภาษณ์แบบมัลติเธรดไม่เกี่ยวข้องอาจกล่าวได้ว่ามันไม่สมบูรณ์ ปัญหาเกี่ยวกับกรอบการรวบรวมไม่เกี่ยวข้องกับ Hashset และ HashMap และอาจกล่าวได้ว่าไม่สมบูรณ์ HashMap และ Hashset เป็นทั้งสองส่วนของกรอบการรวบรวมซึ่งช่วยให้เราสามารถใช้คอลเลกชันของวัตถุ เฟรมเวิร์กคอลเลกชันมีอินเทอร์เฟซและการใช้งานของตัวเองซึ่งส่วนใหญ่แบ่งออกเป็นอินเทอร์เฟซชุดอินเทอร์เฟซรายการและอินเทอร์เฟซคิว พวกเขามีลักษณะของตัวเอง ชุดไม่อนุญาตให้วัตถุมีค่าที่ซ้ำกันและรายการอนุญาตให้ซ้ำกัน มันดัชนีวัตถุในชุด หลักการทำงานของคิวคืออัลกอริทึม FCFS (มาก่อนเซิร์ฟเวอร์แรก)
ก่อนอื่นมาดูสิ่งที่ HashMap และ Hashset คือจากนั้นเปรียบเทียบความแตกต่างระหว่างพวกเขา
Hashset คืออะไร
HashSet ใช้อินเทอร์เฟซชุดซึ่งไม่อนุญาตให้มีค่าที่ซ้ำกันในชุด เมื่อเราพูดถึง HashSet สิ่งแรกคือการตรวจสอบให้แน่ใจว่าวัตถุนั้นจะแทนที่วิธีการเท่ากับ () และ hashCode () ก่อนที่จะเก็บวัตถุใน HashSet เพื่อให้วัตถุสามารถเปรียบเทียบได้ว่าค่าของวัตถุเท่ากันเพื่อให้แน่ใจว่าไม่มีวัตถุเท่ากันเก็บไว้ในชุด หากเราไม่ได้เขียนสองวิธีนี้ใหม่การใช้งานเริ่มต้นของวิธีนี้จะถูกใช้
วิธีบูลีนสาธารณะเพิ่ม (Object O) ใช้เพื่อเพิ่มองค์ประกอบในชุด เมื่อค่าองค์ประกอบซ้ำแล้วซ้ำอีกมันจะส่งคืนเท็จทันทีและหากมีการเพิ่มสำเร็จมันจะส่งคืนจริง
hashmap คืออะไร
HashMap ใช้อินเทอร์เฟซแผนที่ซึ่งแมปคู่ค่าคีย์ ไม่อนุญาตให้ใช้ปุ่มซ้ำในแผนที่ มีการใช้งานพื้นฐานสองประการของอินเทอร์เฟซแผนที่ HashMap และ Treemap Treemap บันทึกลำดับของวัตถุในขณะที่ HashMap ไม่สามารถทำได้ HASHMAP อนุญาตให้คีย์และค่าเป็นโมฆะ HashMap นั้นไม่ได้ถูกซิงโครไนซ์ แต่เฟรมเวิร์กคอลเลกชันมีวิธีการเพื่อให้แน่ใจว่า HashMap ซิงโครไนซ์ดังนั้นเมื่อหลายเธรดเข้าถึง HASHMAP ในเวลาเดียวกันก็สามารถมั่นใจได้ว่ามีเพียงเธรดเดียวเท่านั้นที่เปลี่ยนแผนที่
วัตถุที่วาง (คีย์วัตถุค่าวัตถุ) ใช้เพื่อเพิ่มองค์ประกอบในแผนที่
คุณสามารถอ่านบทความนี้เพื่อดูว่า HashMap ทำงานอย่างไรและบทความนี้เพื่อดูว่า HashMap และ Hashtable แตกต่างกันอย่างไร
ความแตกต่างระหว่าง hashset และ hashmap
| *hashmap* | *HashSet* |
| HashMap ใช้อินเทอร์เฟซแผนที่ | HashSet ใช้ชุดอินเทอร์เฟซ |
| hashmap เพื่อเก็บคู่คีย์-ค่า | Hashset เท่านั้นจัดเก็บวัตถุ |
| ใช้วิธีการใส่ () เพื่อใส่องค์ประกอบลงในแผนที่ | ใช้วิธีการเพิ่ม () เพื่อนำองค์ประกอบลงในชุด |
| HashMap ใช้วัตถุคีย์เพื่อคำนวณค่า hashcode | HashSet ใช้วัตถุสมาชิกเพื่อคำนวณค่า HashCode HashCode อาจเหมือนกันสำหรับสองวัตถุดังนั้นวิธี Equals () ใช้เพื่อตัดสินความเท่าเทียมกันของวัตถุ หากวัตถุทั้งสองแตกต่างกันให้ส่งคืนเท็จ |
| HashMap เร็วกว่าเพราะใช้คีย์เดียวเพื่อรับวัตถุ | Hashset ช้ากว่า HashMap |
หากคุณรู้ความแตกต่างอื่น ๆ โปรดฝากข้อความไว้
ลิงค์ต้นฉบับ: Javarevisited Translation: importNew.com - Tang Xiaojuan Translation Link: http://www.importnew.com/6931.html