ข้อมูลเบื้องต้นเกี่ยวกับ TreeMap ใน Java พร้อมตัวอย่าง



บทความนี้จะให้ความรู้เกี่ยวกับ TreeMap ใน Java โดยละเอียดและครอบคลุมพร้อมตัวอย่าง Methods and Constructors

การนำอินเทอร์เฟซแผนที่ใน Java เป็นงานที่สำคัญมาก เพื่อจุดประสงค์นี้เรามี TreeMap และ HashMap . ในบทความนี้เราจะมุ่งเน้นไปที่ TreeMap ใน ตามลำดับต่อไปนี้:

TreeMap ใน Java คืออะไร?

TreeMap ใน Java ใช้เพื่อใช้งานอินเตอร์เฟสแผนที่และ NavigableMap พร้อมกับคลาสบทคัดย่อ แผนที่จะจัดเรียงตามลำดับตามธรรมชาติของคีย์หรือตามตัวเปรียบเทียบที่ให้ไว้ในเวลาสร้างแผนที่ขึ้นอยู่กับตัวสร้างที่ใช้ นี่เป็นวิธีที่มีประสิทธิภาพในการจัดเรียงและจัดเก็บคู่คีย์ - ค่า





TreeMap-in-Javaลำดับการจัดเก็บที่ดูแลโดย treemap ต้องสอดคล้องกับความเท่าเทียมกันเช่นเดียวกับแผนที่ที่เรียงลำดับอื่น ๆ โดยไม่คำนึงถึงตัวเปรียบเทียบที่ชัดเจน แผนที่ต้นไม้การใช้งานจะไม่ซิงโครไนซ์ในแง่ที่ว่าหากมีการเข้าถึงแผนที่โดยหลายเธรดพร้อมกันและเธรดอย่างน้อยหนึ่งเธรดแก้ไขแผนที่ในเชิงโครงสร้างแผนที่จะต้องซิงโครไนซ์กับภายนอก

คุณสมบัติของ TreeMaps

  • คลาสนี้เป็นสมาชิกของ Java Collections Framework



  • คลาสนี้ใช้อินเทอร์เฟซ Map รวมถึง NavigableMap, SortedMap และขยาย AbstractMap

  • TreeMap ใน Java ไม่อนุญาตให้ใช้คีย์ null (เช่น Map) ดังนั้นจึงมีการโยน NullPointerException อย่างไรก็ตามค่า null หลายค่าสามารถเชื่อมโยงกับคีย์ที่แตกต่างกันได้

    วิธีใช้ตัววนซ้ำ
  • แผนที่ทั้งหมดคู่รายการที่ส่งคืนโดยวิธีการในคลาสนี้และมุมมองแสดงถึงสแนปช็อตของการแมปในเวลาที่สร้างขึ้น



  • พวกเขาไม่สนับสนุนเมธอด Entry.setValue

    วิธีใช้ sort c ++

สิ่งสำคัญที่ต้องจำ

  1. นอกเหนือจากการใช้อินเทอร์เฟซแผนที่ Java TreeMap ยังใช้ NavigableMap และใช้อินเทอร์เฟซ SortedMap โดยอ้อม TreeMap ยังขยายคลาส AbstractMap

  2. รายการ TreeMap จะเรียงตามลำดับปกติของคีย์ นอกจากนี้ยังมีคอนสตรัคเตอร์เพื่อจัดหาตัวเปรียบเทียบเพื่อใช้ในการสั่งซื้อ ดังนั้นหากคุณใช้คลาสใด ๆ เป็นคีย์ตรวจสอบให้แน่ใจว่าได้ใช้อินเทอร์เฟซที่เปรียบเทียบได้สำหรับการสั่งซื้อตามธรรมชาติ ตรวจสอบคำถามสัมภาษณ์คอลเลกชัน java เพื่อทำความเข้าใจความสำคัญของวิธีการเหล่านี้

  3. การใช้งาน Java TreeMap ให้การรับประกันต้นทุนเวลา log (n) สำหรับการดำเนินการ containsKey, get, put และ remove

  4. TreeMap ไม่ซิงโครไนซ์และด้วยเหตุนี้จึงไม่ปลอดภัยต่อเธรด สำหรับสภาพแวดล้อมแบบมัลติเธรดคุณสามารถรับการซิงโครไนซ์แบบรวมโดยใช้เมธอด Collections.synchronizedSortedMap

  5. เมธอด TreeMap เพื่อรับชุดคีย์และค่าที่ส่งคืน Iterator ที่มีลักษณะล้มเหลวอย่างรวดเร็วดังนั้นการแก้ไขพร้อมกันใด ๆ จะทำให้เกิด ConcurrentModificationException

  6. TreeMap ใน java ไม่อนุญาตให้ใช้คีย์ Null อย่างไรก็ตามคุณสามารถมีค่า null หลายค่าที่เชื่อมโยงกับคีย์ต่างๆ

ตัวสร้างใน TreeMap

ผู้สร้าง คำอธิบาย
แผนผังต้นไม้ () สร้างทรีแมปว่างที่จะเรียงลำดับตามธรรมชาติของคีย์
TreeMap (ตัวเปรียบเทียบเปรียบเทียบ) สร้างแผนที่แบบต้นไม้ว่างที่จะเรียงลำดับโดยใช้ Comparator comparator
TreeMap (แผนที่ม.) เริ่มต้นทรีแมปด้วยรายการจาก m ซึ่งจะจัดเรียงตามลำดับธรรมชาติของคีย์
TreeMap (SortedMap sm) เริ่มต้นทรีแมปด้วยรายการจาก SortedMap sm ซึ่งจะจัดเรียงตามลำดับเดียวกับ sm

วิธีการใน TreeMap

วิธี คำอธิบาย
เป็นโมฆะชัดเจน () ลบการแมปทั้งหมดออกจาก TreeMap นี้
โคลนวัตถุ () ส่งคืนสำเนาตื้นของอินสแตนซ์ TreeMap นี้
ตัวเปรียบเทียบตัวเปรียบเทียบ () ส่งคืนตัวเปรียบเทียบที่ใช้เพื่อจัดลำดับแผนที่นี้หรือเป็นค่าว่างหากแผนที่นี้ใช้ลำดับธรรมชาติของคีย์
บูลีนประกอบด้วยคีย์ (คีย์วัตถุ) ส่งคืนค่าจริงหากแผนที่นี้มีการแมปสำหรับคีย์ที่ระบุ
บูลีน containsValue (ค่าวัตถุ) ส่งคืนค่าจริงหากแผนที่นี้แมปคีย์อย่างน้อยหนึ่งคีย์กับค่าที่ระบุ
ตั้งค่า entrySet () ส่งคืนมุมมองชุดของการแมปที่มีอยู่ในแผนที่นี้
วัตถุ firstKey () ส่งคืนคีย์แรก (ต่ำสุด) ในแผนที่ที่เรียงลำดับนี้
Object get (คีย์ออบเจ็กต์) ส่งคืนค่าที่แผนที่นี้จับคู่คีย์ที่ระบุ
SortedMap headMap (Object toKey) ส่งคืนมุมมองของส่วนของแผนที่นี้ซึ่งมีคีย์น้อยกว่า toKey อย่างเคร่งครัด
ตั้งค่า keySet () ส่งคืนมุมมองชุดของคีย์ที่มีอยู่ในแผนที่นี้
วัตถุ lastKey () ส่งคืนคีย์สุดท้าย (สูงสุด) ปัจจุบันในแผนที่ที่เรียงลำดับนี้
ใส่วัตถุ (คีย์วัตถุค่าวัตถุ) เชื่อมโยงค่าที่ระบุกับคีย์ที่ระบุในแผนที่นี้
เป็นโมฆะ putAll (แผนที่แผนที่) คัดลอกการแมปทั้งหมดจากแผนที่ที่ระบุไปยังแผนที่นี้
ลบวัตถุ (คีย์วัตถุ) ลบการแมปสำหรับคีย์นี้ออกจาก TreeMap นี้หากมี
ขนาด int () ส่งคืนจำนวนการแมปคีย์ - ค่าในแผนที่นี้
แผนที่ย่อย SortedMap (Object fromKey, Object toKey) ส่งคืนมุมมองของส่วนต่างๆของแผนที่นี้ซึ่งมีคีย์ตั้งแต่คีย์รวมถึงถึงคีย์พิเศษ
SortedMap tailMap (วัตถุ fromKey) ส่งคืนมุมมองของส่วนของแผนที่นี้ซึ่งมีคีย์มากกว่าหรือเท่ากับ fromKey
ค่าการรวบรวม () ส่งคืนมุมมองคอลเลกชันของค่าที่มีอยู่ในแผนที่นี้

ตัวอย่าง TreeMap ใน Java

นำเข้า java.util.TreeMap คลาสสาธารณะ TreeMapMain {public static void main (String args []) {// TreeMap ที่มี Country เป็นคีย์และตัวพิมพ์ใหญ่เป็นค่า // TreeMap จัดเก็บองค์ประกอบตามลำดับคีย์ตามธรรมชาติ TreeMap countryCapitalMap = TreeMap ใหม่ () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('รัสเซีย' , 'Moscow') System.out.println ('-----------------------------') // การทำ TreeMap ซ้ำโดยใช้ keySet ( ) และสำหรับแต่ละลูป System.out.println ('ทำซ้ำ TreeMap โดยใช้ keySet () และสำหรับแต่ละลูป') สำหรับ (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' และเมืองหลวง: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

เอาท์พุต:

โปรแกรมการเรียงลำดับผสานอย่างง่ายใน c ++

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทความ TreeMap ใน Java ค กำจัดไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'TreeMap in Java' และเราจะติดต่อกลับโดยเร็วที่สุด