ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่าง 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()
-
องค์ประกอบต่างๆ จะเรียงลำดับจากน้อยไปมากหรือที่เรียกว่าลำดับตามธรรมชาติ
-
ใช้เมื่อความต้องการเป็นคู่คีย์-ค่าในลำดับที่จัดเรียง