การนำอินเทอร์เฟซแผนที่ใน Java เป็นงานที่สำคัญมาก เพื่อจุดประสงค์นี้เรามี TreeMap และ HashMap . ในบทความนี้เราจะมุ่งเน้นไปที่ TreeMap ใน ตามลำดับต่อไปนี้:
- TreeMap ใน Java คืออะไร?
- คุณสมบัติของ TreeMaps
- ตัวสร้างใน TreeMap
- วิธีการใน TreeMap
- ตัวอย่าง TreeMap ใน Java
TreeMap ใน Java คืออะไร?
TreeMap ใน Java ใช้เพื่อใช้งานอินเตอร์เฟสแผนที่และ NavigableMap พร้อมกับคลาสบทคัดย่อ แผนที่จะจัดเรียงตามลำดับตามธรรมชาติของคีย์หรือตามตัวเปรียบเทียบที่ให้ไว้ในเวลาสร้างแผนที่ขึ้นอยู่กับตัวสร้างที่ใช้ นี่เป็นวิธีที่มีประสิทธิภาพในการจัดเรียงและจัดเก็บคู่คีย์ - ค่า
ลำดับการจัดเก็บที่ดูแลโดย treemap ต้องสอดคล้องกับความเท่าเทียมกันเช่นเดียวกับแผนที่ที่เรียงลำดับอื่น ๆ โดยไม่คำนึงถึงตัวเปรียบเทียบที่ชัดเจน แผนที่ต้นไม้การใช้งานจะไม่ซิงโครไนซ์ในแง่ที่ว่าหากมีการเข้าถึงแผนที่โดยหลายเธรดพร้อมกันและเธรดอย่างน้อยหนึ่งเธรดแก้ไขแผนที่ในเชิงโครงสร้างแผนที่จะต้องซิงโครไนซ์กับภายนอก
คุณสมบัติของ TreeMaps
คลาสนี้เป็นสมาชิกของ Java Collections Framework
คลาสนี้ใช้อินเทอร์เฟซ Map รวมถึง NavigableMap, SortedMap และขยาย AbstractMap
TreeMap ใน Java ไม่อนุญาตให้ใช้คีย์ null (เช่น Map) ดังนั้นจึงมีการโยน NullPointerException อย่างไรก็ตามค่า null หลายค่าสามารถเชื่อมโยงกับคีย์ที่แตกต่างกันได้
วิธีใช้ตัววนซ้ำ
แผนที่ทั้งหมดคู่รายการที่ส่งคืนโดยวิธีการในคลาสนี้และมุมมองแสดงถึงสแนปช็อตของการแมปในเวลาที่สร้างขึ้น
พวกเขาไม่สนับสนุนเมธอด Entry.setValue
วิธีใช้ sort c ++
สิ่งสำคัญที่ต้องจำ
นอกเหนือจากการใช้อินเทอร์เฟซแผนที่ Java TreeMap ยังใช้ NavigableMap และใช้อินเทอร์เฟซ SortedMap โดยอ้อม TreeMap ยังขยายคลาส AbstractMap
รายการ TreeMap จะเรียงตามลำดับปกติของคีย์ นอกจากนี้ยังมีคอนสตรัคเตอร์เพื่อจัดหาตัวเปรียบเทียบเพื่อใช้ในการสั่งซื้อ ดังนั้นหากคุณใช้คลาสใด ๆ เป็นคีย์ตรวจสอบให้แน่ใจว่าได้ใช้อินเทอร์เฟซที่เปรียบเทียบได้สำหรับการสั่งซื้อตามธรรมชาติ ตรวจสอบคำถามสัมภาษณ์คอลเลกชัน java เพื่อทำความเข้าใจความสำคัญของวิธีการเหล่านี้
การใช้งาน Java TreeMap ให้การรับประกันต้นทุนเวลา log (n) สำหรับการดำเนินการ containsKey, get, put และ remove
TreeMap ไม่ซิงโครไนซ์และด้วยเหตุนี้จึงไม่ปลอดภัยต่อเธรด สำหรับสภาพแวดล้อมแบบมัลติเธรดคุณสามารถรับการซิงโครไนซ์แบบรวมโดยใช้เมธอด Collections.synchronizedSortedMap
เมธอด TreeMap เพื่อรับชุดคีย์และค่าที่ส่งคืน Iterator ที่มีลักษณะล้มเหลวอย่างรวดเร็วดังนั้นการแก้ไขพร้อมกันใด ๆ จะทำให้เกิด ConcurrentModificationException
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' และเราจะติดต่อกลับโดยเร็วที่สุด