คลาส Java TreeMap เก็บข้อมูลในโครงสร้างแบบต้นไม้โดยใช้อินเทอร์เฟซแผนที่ คลาสนี้ขยายคลาส AbstractMap และเช่นเดียวกับคลาสพาเรนต์ TreeMap มีพารามิเตอร์สองประเภท พารามิเตอร์ประเภทหนึ่งแสดงถึงคีย์ใน TreeMap ในขณะที่อีกพารามิเตอร์หนึ่งแสดงถึงค่า
โครงสร้างข้อมูล TreeMap เก็บคู่คีย์-ค่า และอนุญาตให้คุณดำเนินการ CRUD กับข้อมูลนี้ได้
วิธีสร้าง TreeMap ใน Java
คลาส TreeMap มีตัวสร้างสี่ตัวที่คุณสามารถใช้เพื่อสร้างวัตถุ TreeMap ใหม่ ตัวสร้างเริ่มต้นเป็นที่นิยมมากที่สุดในสี่ตัว ตัวสร้างนี้ไม่มีอาร์กิวเมนต์และสร้างแผนผังต้นไม้ที่ว่างเปล่า
// Create a new tree map
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();
รหัสด้านบนสร้างแผนผังต้นไม้ว่างที่เรียกว่า ลูกค้า .
การเติมโครงสร้างข้อมูล TreeMap
ดิ ใส่() วิธีการเพิ่มรายการไปยังวัตถุ TreeMap ต้องใช้สองอาร์กิวเมนต์—คีย์และค่าของมัน คุณสามารถเพิ่มรายการลงในแผนผังต้นไม้ในลำดับแบบสุ่มใดก็ได้ และโครงสร้างข้อมูลจะจัดเก็บรายการดังกล่าวในลำดับจากน้อยไปมากตามคีย์ของรายการ
// Populate a tree map
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");
รหัสด้านบนจะเพิ่มลูกค้าห้ารายในลำดับแบบสุ่มในแผนผังโครงสร้างลูกค้า
การดูรายการใน TreeMap
คลาส TreeMap เก็บข้อมูลในวัตถุ ดังนั้น หากต้องการดูรายการทั้งหมดในแผนผังต้นไม้ คุณสามารถพิมพ์วัตถุแผนผังต้นไม้ไปยังคอนโซลได้:
// View all tree map items as an object
System.out.println(customers);
รหัสด้านบนพิมพ์ผลลัพธ์ต่อไปนี้ไปยังคอนโซล:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
โปรดทราบว่าวัตถุด้านบนแสดงรายการในลำดับจากน้อยไปมาก คุณยังสามารถดูแต่ละรายการและคีย์ที่เกี่ยวข้องได้โดยใช้ Java สำหรับลูป .
ขนาดหน่วยความจำเสมือน windows 10 ที่แนะนำ
// View all items with an iterator
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}
รหัสด้านบนพิมพ์ผลลัพธ์ต่อไปนี้ไปยังคอนโซล:
Key: 101 Value: Kim Brown
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones
การอัปเดตรายการใน TreeMap
คลาส TreeMap อนุญาตให้คุณอัปเดตรายการที่มีอยู่โดยใช้ แทนที่() กระบวนการ. มีสองวิธีในการแทนที่ วิธีแรกใช้คีย์ที่มีอยู่และค่าใหม่ที่คุณต้องการจับคู่คีย์ที่มีอยู่
// Replace existing value
customers.replace(101,"Kim Smith");
System.out.println(customers);
รหัสด้านบนพิมพ์วัตถุต่อไปนี้ในคอนโซล:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
อย่างที่เห็น คิม บราวน์ ตอนนี้ คิม สมิธ . วิธีแทนที่ที่สอง () ใช้คีย์ที่มีอยู่ ค่าปัจจุบันของคีย์ และค่าใหม่ที่คุณต้องการจับคู่กับคีย์
// Replace existing value
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);
รหัสด้านบนพิมพ์วัตถุต่อไปนี้ในคอนโซล:
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
ในวัตถุด้านบน มิเชล โนอาห์ แทนที่ จิม ไรลีย์ .
การลบรายการออกจาก TreeMap
หากคุณต้องการลบรายการเดียวออกจากแผนผังต้นไม้ ให้ ลบ() วิธีการคือทางเลือกเดียวของคุณ ใช้คีย์ที่เกี่ยวข้องกับรายการที่คุณต้องการลบและส่งกลับค่าที่ถูกลบ
// Remove an item
customers.remove(104);
System.out.println(customers);
การรันโค้ดด้านบนจะพิมพ์วัตถุต่อไปนี้ไปที่คอนโซล:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
นี้ Java Class มี แจ่มใส() วิธีที่ให้คุณลบรายการทั้งหมดในแผนผังต้นไม้
TreeMap กับ HashMap Java Class
TreeMap และ HashMap เป็นคลาสแผนที่ Java ยอดนิยมสองคลาส พวกเขาทั้งคู่ขยายคลาส AbstractMap ความสัมพันธ์นี้ทำให้คลาส TreeMap และ HashMap เข้าถึงฟังก์ชันเดียวกันได้มากมาย
อย่างไรก็ตาม มีความแตกต่างที่น่าสังเกตระหว่างคลาสแผนที่ทั้งสองนี้ TreeMap ใช้โครงสร้างต้นไม้สีแดง-ดำของอินเทอร์เฟซแผนที่ ในขณะที่ HashMap ใช้ตารางแฮช HashMap อนุญาตให้คุณเก็บคีย์ null เดียว ในขณะที่ TreeMap ไม่เก็บ สุดท้าย HashMap นั้นเร็วกว่า TreeMap ความเร็วอัลกอริธึมของอดีตคือ O(1) ในขณะที่ความเร็วของอัลกอริธึมของอดีตคือ O(log(n))