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

ความแตกต่างระหว่าง HashMap และ TreeMap ใน Java


ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่าง hashmap และ treemap ที่เกี่ยวข้องกับ Java

HashMap

  • เป็นตารางแฮชใน Java

  • มันขึ้นอยู่กับการใช้งานอินเทอร์เฟซ 'แผนที่'

  • มันใช้อินเทอร์เฟซ 'แผนที่ 'Cloneable' และ 'Serializable'

  • อนุญาตให้ใช้คีย์ null เพียงปุ่มเดียว

  • นอกจากนี้ยังอนุญาตค่า Null หลายค่า

  • เร็วกว่าเมื่อเปรียบเทียบกับ Treemap

  • นั่นเป็นเพราะมันให้การแสดงเวลาคงที่ เช่น O(1) สำหรับการดำเนินการเช่น 'get' และ 'put'

  • มันไม่ทำการเรียงลำดับคีย์

  • ดังนั้นจึงช่วยให้องค์ประกอบต่างกันใน HashMap

  • ไม่รักษาลำดับขององค์ประกอบ

  • สามารถใช้ได้เมื่อไม่ต้องการคู่คีย์-ค่าในลำดับการจัดเรียง

  • มันใช้วิธี 'เท่ากับ' ของคลาส Object เพื่อเปรียบเทียบคีย์

  • วิธีการ 'เท่ากับ' ของคลาส Map จะแทนที่มัน

  • มีเพียงวิธีการพื้นฐานเช่น 'KeySet', 'get', 'put'

แผนผังต้นไม้

  • เป็นโครงสร้างแบบต้นไม้ที่ใช้ใน Java

  • มันขึ้นอยู่กับการใช้งานอินเทอร์เฟซ 'แผนที่'

  • มันใช้อินเทอร์เฟซ 'NavigableMap', 'Cloneable' และ 'Serializable'

  • ไม่อนุญาตให้มีคีย์ว่าง

  • อนุญาตให้มีค่า Null หลายค่า

  • โดยยอมให้ค่าที่เป็นเนื้อเดียวกันเป็นคีย์เนื่องจากถูกจัดเรียง

  • มันช้าเมื่อเทียบกับ HashMap เพราะมันให้ความซับซ้อนของ O(log(n)) สำหรับการดำเนินการส่วนใหญ่ เช่น add(), remove() และ contain()

  • ภายในใช้ต้นไม้สีแดง-ดำ

  • ต้นไม้สีแดงดำเป็นต้นไม้ค้นหาไบนารีที่สมดุลในตัวเอง

  • มีการใช้เมธอด CompareTo() เพื่อเปรียบเทียบคีย์

  • มันมีฟังก์ชันมากมาย เช่น tailMap(), firstKey(), lastKey(), pollFirstEntry(), pollLastEntry()

  • องค์ประกอบต่างๆ จะเรียงลำดับจากน้อยไปมากหรือที่เรียกว่าลำดับตามธรรมชาติ

  • ใช้เมื่อความต้องการเป็นคู่คีย์-ค่าในลำดับที่จัดเรียง