Penjelasan terperinci tentang java hashmap, treemap dan linkedhashmap
Selama wawancara pagi ini, saya bertanya tentang Java dan peta hal -hal terkait. Saya ingat konten yang terkait dengan HashMap dan TreeMap secara salah. Ketika saya kembali, saya dengan cepat mencoba beberapa demo untuk dipahami.
peta paket; impor java.util.*; hashmaps kelas publik {public static void main (string [] args) {peta = new hashMap (); peta.put ("a", "aaa"); Map.put ("B", "BBB"); peta.put ("c", "ccc"); peta.put ("d", "ddd"); Iterator iterator = map.keyset (). Iterator (); while (iterator.hasnext ()) {tombol objek = iterator.next (); System.out.println ("Map.get (key) adalah:" + map.get (key)); } Tab hashtable = hashtable baru (); tab.put ("a", "aaa"); tab.put ("b", "bbb"); tab.put ("c", "ccc"); tab.put ("d", "ddd"); Iterator iterator_1 = tab.keyset (). Iterator (); while (iterator_1.hasnext ()) {tombol objek = iterator_1.next (); System.out.println ("tab.get (key) adalah:" + tab.get (key)); } Treemap tmp = new treemap (); tmp.put ("a", "aaa"); tmp.put ("b", "bbb"); tmp.put ("c", "ccc"); tmp.put ("d", "ddd"); tmp.put ("a", "aba"); Iterator iterator_2 = tmp.keyset (). Iterator (); while (iterator_2.hasnext ()) {tombol objek = iterator_2.next (); System.out.println ("tmp.get (key) adalah:" + tmp.get (key)); } LinkedHashMap <String, Integer> linkedHashMap = new LinkedHashMap <String, Integer> (); linkedhashmap.put ("dasdsa", 1); LinkedHashMap.put ("GDSF", 2); LinkedHashMap.put ("Texvdfd", 3); linkedhashmap.put ("bdada", 4); LinkedHashMap.put ("GDSF", 3); untuk (string temp: linkedHashMap.keyset ()) {System.out.println (temp); }}} Peta berbeda dari daftar. Lapisan yang mendasarinya menggunakan bentuk pasangan nilai kunci untuk menyimpan data. MAP.Entry adalah sub-entri internal. Implementasi MAP yang berbeda memiliki skema indeks yang berbeda untuk pasangan nilai kunci.
HashMap sendiri menggunakan fungsi hash untuk mengindeks nilai -nilai kunci. Kami tidak dapat menentukan urutan nilai kunci terakhir.
Namun, ada fenomena yang menarik bahwa ketika menggunakan integer sebagai pasangan nilai kunci, ketika digit 1 digit, nilai kunci diatur dari kecil ke besar, dan ketika digit naik menjadi dua digit, mungkin ada masalah.
Ada pohon seimbang di dalam TreeMap untuk menyimpan indeks nilai kunci. TreeMap mengurutkan nilai -nilai kunci sesuai dengan fungsi perbandingan. Saya berspekulasi bahwa mungkin ada avltree di dalam.
LinkedHashMap memiliki fitur bahwa pasangan nilai kunci diurutkan dalam urutan penyisipan. Jika ada insersi yang diulang, mereka direkam dalam urutan penyisipan pertama. Salah satu ucapan di internet adalah bahwa ada dua hash di dalam struktur.
Satu memecahkan masalah pesanan, yang lain memecahkan masalah penyimpanan, kebenarannya harus dikonfirmasi
Hashmap dan TreeMap adalah dua struktur peta yang paling umum digunakan. Secara umum, hashmap relatif efisien dan paling umum. Hanya jika kita perlu dipesan dengan nilai -nilai kunci, kita akan menggunakan TreeMap.
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!