TreeMap ialah kelas Rangka Kerja Koleksi Java yang melaksanakan Antara Muka NavigableMap. Ia menyimpan elemen peta dalam struktur pepohon dan menyediakan alternatif yang cekap untuk menyimpan pasangan nilai kunci dalam susunan yang disusun secara Dalaman, TreeMap menggunakan pokok merah-hitam , yang merupakan pepohon carian binari mengimbangi sendiri A TreeMap mesti melaksanakan Antara Muka Sebanding atau Pembanding tersuai supaya ia boleh mengekalkan susunan pengisihan elemennya jika tidak, kami akan menemui java.lang.ClassCastException Artikel ini bertujuan untuk menerangkan bagaimana TreeMap berfungsi secara dalaman di Jawa.
Untuk memahami kerja dalaman TreeMap, anda perlu mempunyai gambaran keseluruhan algoritma pokok merah-hitam, kerana TreeMap menggunakannya untuk menyimpan elemen.
Pokok merah-hitam ialah pepohon carian binari pengimbangan diri dengan sifat berikut:
Setiap nod mengandungi bit tambahan, diwakili oleh merah atau hitam. Warna-warna ini digunakan untuk memastikan pokok kekal seimbang.
Warna nod akar sentiasa hitam.
Nod merah tidak boleh mempunyai nod lain dengan warna yang sama dengan jirannya
Dari nod akar ke nod kosong, bilangan nod hitam pada semua laluan mestilah sama
Sekarang, mari lihat struktur TreeMap:
Jika kita menambah elemen pada TreeMap, ia akan menambah entri pertama di tempat pertama Dari elemen kedua, ia akan menyemak sama ada kunci entri semasa lebih besar atau lebih kecil daripada entri sebelumnya ditambah ke kiri dan yang mempunyai nilai lebih besar akan ditambah di sebelah kanan entri Ibu Bapa.
Untuk menggunakan koleksi TreeMap dalam program kami, kami perlu mencipta contoh kelas TreeMap Untuk itu Java menyediakan pembina berikut:
TreeMap(): Ia akan mencipta koleksi TreeMap kosong
TreeMap(Map mapInstance): Kita boleh mencipta peta pokok menggunakan entri daripada peta lain
TreeMap(Comparator ComparatorInstance): Ia membolehkan kami membuat peta pokok kosong, diisih menggunakan pembanding.
TreeMap(SortedMap sortedmapInstance): Kami juga boleh mencipta peta pokok dengan entri daripada peta yang diisih.
Mari kita bincangkan beberapa contoh untuk lebih memahami perkara yang dibincangkan di atas.
Dalam contoh berikut, kami akan mencipta TreeMap kosong dan kemudian menyimpan beberapa elemen ke dalamnya menggunakan kaedah 'put()'. Kami akan mencetak butirannya menggunakan untuk setiap gelung. Keputusan akan dipaparkan dalam susunan yang disusun.
rreeeeimport java.util.*; public class Example1 { public static void main(String[] args) { // creating a TreeMap TreeMap<String, Integer> TrMap = new TreeMap<>(); // Adding elements in the map TrMap.put("Kurti", 4000); TrMap.put("Shirt", 3000); TrMap.put("TShirt", 1500); TrMap.put("Watch", 2000); TrMap.put("Perfume", 2500); // printing the details of map System.out.println("Elements of the map: "); // iterating through the map for (String unKey : TrMap.keySet()) { // printing details of each node System.out.println("Item: " + unKey + ", Price: " + TrMap.get(unKey)); } String frstKey = TrMap.firstKey(); // accessing first key String lstKey = TrMap.lastKey(); // accessing last key System.out.println("Accessing name of first key in Map: " + frstKey); System.out.println("Accessing name of last key in Map: " + lstKey); } }
Kami memulakan artikel ini dengan mentakrifkan Peta Pokok dan membincangkan kerja dalamannya dalam bahagian seterusnya. TreeMap menggunakan pokok merah-hitam untuk menyimpan elemennya, yang merupakan pokok carian binari pengimbangan diri. Selain itu, kami juga membincangkan contoh untuk menggambarkan cara TreeMap berfungsi.
Atas ialah kandungan terperinci Kerja dalaman TreeMap di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!