ความแตกต่างที่สำคัญ – TreeSet vs TreeMap
อาร์เรย์ใช้เพื่อเก็บชุดขององค์ประกอบข้อมูลประเภทเดียวกัน ภาษาโปรแกรมส่วนใหญ่รองรับอาร์เรย์ แม้ว่าอาร์เรย์จะเก็บค่าได้หลายค่า มีข้อเสียที่สำคัญคือ เมื่อสร้างอาร์เรย์แล้วจะไม่สามารถเปลี่ยนแปลงได้ หากโปรแกรมเมอร์ประกาศอาร์เรย์ 10 องค์ประกอบ จะไม่สามารถเก็บ 15 องค์ประกอบได้ เมื่อโปรแกรมเมอร์ประกาศอาร์เรย์ของ 10 องค์ประกอบและเก็บเพียง 5 องค์ประกอบ หน่วยความจำที่เหลือที่จัดสรรจะสูญเปล่า ภาษาการเขียนโปรแกรมเช่น Java มีคอลเล็กชันเพื่อจัดเก็บองค์ประกอบข้อมูลแบบไดนามิก มีจำนวนสะสม คอลเล็กชันช่วยในการเพิ่ม ลบองค์ประกอบ และการดำเนินการอื่นๆอินเทอร์เฟซพื้นฐานเรียกว่าคอลเล็กชัน Set, List และ Queue เป็นอินเทอร์เฟซบางส่วนที่ขยายอินเทอร์เฟซ Collection แผนที่เป็นส่วนต่อประสานของลำดับชั้นการรวบรวม แต่ไม่ได้ขยายส่วนต่อประสานคอลเลกชัน TreeSet เป็นคลาสที่ใช้อินเทอร์เฟซ Set และจัดเก็บองค์ประกอบในลำดับจากน้อยไปมาก TreeMap เป็นคลาสที่ใช้ส่วนต่อประสานแผนที่และจัดเก็บคีย์คู่ค่าในลำดับจากน้อยไปมาก นั่นคือความแตกต่างที่สำคัญ บทความนี้กล่าวถึงความแตกต่างระหว่าง TreeSet และ TreeMap
TreeSet คืออะไร
TreeSet เป็นคลาสที่ใช้ Set interface TreeSet รักษาองค์ประกอบที่เป็นเอกลักษณ์ TreeSet ใช้อินเทอร์เฟซ NavigableSet อินเทอร์เฟซ Navigable ขยายอินเทอร์เฟซ SortedSet, Set, Collection และ Iterable ตามลำดับชั้น TreeSet เก็บองค์ประกอบในลำดับจากน้อยไปมาก หากลำดับของการแทรกคือ A, C, B ชุด TreeSet จะจัดเก็บเป็น A, B, C มีวิธีการของ TreeSet วิธีการเพิ่มจะใช้เพื่อเพิ่มองค์ประกอบในชุดวิธีการลบใช้เพื่อลบองค์ประกอบที่ระบุ วิธีการที่ชัดเจนใช้เพื่อลบองค์ประกอบทั้งหมด มีเมธอดจะคืนค่า true หากมีองค์ประกอบที่ระบุอยู่ในชุด เป็นวิธีการบางอย่างที่ TreeSet จัดเตรียมไว้ อ้างอิงโปรแกรมด้านล่าง
รูปที่ 01: โปรแกรมที่ใช้ TreeSet
ตามโปรแกรมข้างต้น Treeset เป็นวัตถุประเภท TreeSet สามารถเก็บสตริงได้ องค์ประกอบจะถูกเพิ่มโดยใช้วิธีการเพิ่ม ลำดับการแทรกคือ A, C, D และ B การใช้ตัววนซ้ำ ค่าที่เก็บไว้จะถูกพิมพ์ไปที่หน้าจอ องค์ประกอบจะถูกจัดเก็บไว้ในลำดับ A, B, C, D ดังนั้น TreeSet จะรักษาลำดับองค์ประกอบของชุดจากน้อยไปมาก หากมีองค์ประกอบอื่นเป็น "D" จะไม่พิมพ์เนื่องจากองค์ประกอบ D มีอยู่แล้วในชุด มันเก็บองค์ประกอบที่เป็นเอกลักษณ์เสมอ
TreeMap คืออะไร
TreeMap เป็นคลาสที่ใช้ส่วนต่อประสานแผนที่ แผนที่รองรับคู่คีย์-ค่า แต่ละคีย์ คู่ค่าคือรายการ ทุกคีย์ไม่ซ้ำกันและมีค่าที่สอดคล้องกัน เมธอด containKey ใช้สำหรับค้นหาคีย์เฉพาะในขณะที่เมธอด containValue ใช้สำหรับค้นหาค่าเฉพาะ วิธีการรับจะใช้เพื่อค้นหาค่าที่สอดคล้องกับคีย์ที่กำหนด วิธีการใส่ใช้เพื่อเก็บค่าด้วยคีย์ที่กำหนด นอกจากนี้ยังสามารถลบองค์ประกอบที่คีย์เฉพาะโดยใช้วิธีการลบ นี่เป็นวิธีการทั่วไปของอินเทอร์เฟซแผนที่ ช่วยในการค้นหา แทรก และลบองค์ประกอบตามคีย์ คลาส TreeMap ใช้ NavigableMap NavigableMap ขยาย SortedMap SortedMap ขยายแผนที่ ดังนั้นเมธอดของ Map จึงสามารถใช้กับ TreeMap ได้ อ้างอิงโปรแกรมด้านล่าง
รูปที่ 02: โปรแกรมที่ใช้ TreeMap
ตามโปรแกรมด้านบน วัตถุของ TreeMap จะถูกสร้างขึ้น โปรแกรมเมอร์สามารถเพิ่มองค์ประกอบโดยใช้วัตถุ วิธีการใส่ใช้เพื่อแทรกคีย์คู่ค่า เมธอด get ใช้กับคีย์เฉพาะเพื่อดึงข้อมูลองค์ประกอบ โปรแกรมเมอร์สามารถใช้ Map. Entry เพื่อพิมพ์คีย์และค่าทั้งหมด เมื่อสังเกตผลลัพธ์จะไม่รักษาลำดับที่แทรกไว้ มันเก็บองค์ประกอบในลำดับจากน้อยไปมาก
ความคล้ายคลึงกันระหว่าง TreeSet และ TreeMap คืออะไร
- ทั้ง TreeSet และ TreeMap อยู่ในลำดับชั้นของคอลเลกชัน
- ทั้ง TreeSet และ TreeMap รักษาลำดับจากน้อยไปมาก
- ทั้ง TreeSet และ TreeMap สามารถจัดเก็บและจัดการองค์ประกอบต่างๆ ได้
TreeSet กับ TreeMap ต่างกันอย่างไร
TreeSet กับ TreeMap |
|
TreeSet เป็นคลาสที่ใช้อินเทอร์เฟซ Set และจัดเก็บองค์ประกอบตามลำดับจากน้อยไปมาก | TreeMap เป็นคลาสที่ใช้ส่วนต่อประสานแผนที่และจัดเก็บคีย์ คู่ค่าในลำดับจากน้อยไปมาก |
อินเทอร์เฟซที่ใช้งาน | |
TreeSet ใช้งาน Set interface. | TreeMap ใช้อินเทอร์เฟซแผนที่ |
สรุป – TreeSet vs TreeMap
อาร์เรย์ใช้เพื่อจัดเก็บชุดขององค์ประกอบ แต่ไม่ได้ช่วยในการจัดเก็บองค์ประกอบแบบไดนามิก ภาษาการเขียนโปรแกรมเช่น Java มีคอลเล็กชันเพื่อจัดเก็บองค์ประกอบข้อมูลแบบไดนามิก คอลเล็กชันเป็นคลาสพื้นฐานในลำดับชั้นของคอลเล็กชัน ประกอบด้วยคลาสและอินเทอร์เฟซเพื่อดำเนินการต่างๆ เช่น การเพิ่ม การลบองค์ประกอบ Set และ Map เป็นสองอินเทอร์เฟซของลำดับชั้นคอลเล็กชันTreeSet เป็นคลาสที่ใช้อินเทอร์เฟซ Set และจัดเก็บองค์ประกอบในลำดับจากน้อยไปมาก TreeMap เป็นคลาสที่ใช้ส่วนต่อประสานแผนที่และจัดเก็บคีย์คู่ค่าในลำดับจากน้อยไปมาก นั่นคือความแตกต่างระหว่าง TreeSet และ TreeMap