Carta Perbandingan
Asas untuk Perbandingan | HashMap | LinkedHashMap |
---|---|---|
Asas | Perintah memasukkan dalam HashMap tidak dipelihara. | Perintah selipan dipelihara dalam LinkedHashMap. |
Struktur Data | HashMap menggunakan HashTable untuk menyimpan peta. | LinkedHashMap menggunakan HashTable bersama dengan Senarai Berkaitan untuk menyimpan peta. |
Memperluas / Melaksanakan | HashMap meluaskan AbstrakMap dan melaksanakan antara muka Peta. | LinkedHashMap meluaskan Hashmap. |
Versi | HashMap diperkenalkan di JDK 2.0. | LinkedHashMap diperkenalkan di JDK 4.0. |
Overhead | Kompatibel kurang overhead. | Secara perbandingan lebih banyak kerana ia mesti mengekalkan urutan penyertaan peta. |
Definisi HashMap
HashMap adalah kelas yang digunakan untuk membuat peta. Ia melaksanakan Interface Peta . Ia juga memanjangkan kelas AbstractMap supaya ia boleh menggunakan jadual hash untuk menyimpan entri dalam peta. Penyertaan peta adalah sepasang di mana setiap kunci dikaitkan dengan nilai. Kunci dalam entri digunakan untuk mendapatkan nilai kerana itu, kunci mestilah unik. Itulah sebabnya kekunci pendua tidak dibenarkan dalam HashMap. Tetapi kunci dalam setiap entri peta mungkin mempunyai jenis yang berbeza iaitu kunci dalam peta yang dibuat oleh HashMap boleh menjadi heterogen. Struktur data yang digunakan oleh HashMap untuk menyimpan peta adalah jadual hash.
Urutan pemasukan entri dalam HashMap tidak dipelihara. Kemasukan entri dalam peta yang dibuat menggunakan HashMap didasarkan pada kod hash yang dihitung oleh kunci dalam entri. Sekiranya anda salah memasukkan kunci pendua dalam HashMap, ia akan menggantikan nilai sebelumnya kunci itu dengan nilai baru yang dicadangkan dan akan mengembalikan nilai lama. Sekiranya tiada kunci pendua digunakan dan penggantian tidak berlaku, kunci sentiasa kembali Null. Marilah kita melihat cara menambah entri ke peta hash dengan contoh berikut.
Hashmap hm = new Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordan", 200); System.out.println (hm); / * output * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordan = 200}
Seperti dalam kod di atas, anda dapat melihat saya mencipta objek HashMap dan menambah entri menggunakan kaedah meletakkan dan apabila saya mencetak objek HashMap, penyertaan tidak dicetak dalam susunan yang dimasukkan. Oleh itu, anda tidak boleh berpura-pura susunan penyertaan dalam HashMap akan kembali. HashMap menggunakan semua kaedah antara muka Peta dan kelas AbstrakMap dan tidak memperkenalkan sebarang kaedah baru; ia mempunyai konstruktor sendiri. Kapasiti lalai peta hash ialah 16 dan nisbah isi lalai ialah 0.75 .
Definisi LinkedHashMap
LinkedHashMap juga merupakan kegunaan kelas untuk membuat peta. LinkedHashMap memanjangkan kelas HashMap dan diperkenalkan kemudian ke HashMap dalam versi JDK 4.0. Menjadi kelas kanak-kanak kelas HashMap LinkedHashMap sama persis dengan kelas HashMap termasuk konstruktor dan kaedah. Tetapi, LinkedHashMap berbeza dengan pengertian bahawa ia mengekalkan urutan penyisipan entri dalam peta. Struktur data yang digunakan oleh LinkedHashMap untuk menyimpan peta adalah senarai terkaitan dan jadual hash .
Di samping kaedah yang diwarisi oleh HashMap, LinkedHashMap memperkenalkan satu kaedah baru yang removeEldestEntry () . Kaedah ini digunakan untuk mengeluarkan entri tertua dalam peta. Kapasiti lalai dari LinkedHashMap adalah 16, dan nisbah isi lalai ialah 0.75 yang juga sama dengan kelas HashMap.
Perbezaan Utama Antara HashMap dan LinkedHashMap di Jawa
- Perbezaan yang paling penting adalah bahawa urutan pemetaan HashMap tidak dipelihara sedangkan perintah susunan LinkedHashMap dipelihara .
- Struktur data yang digunakan oleh HashMap untuk menyimpan unsur-unsur peta adalah Hashtable . Sebaliknya, struktur data yang digunakan oleh LinkedHashMap adalah senarai Terkait dan Hashtable .
- Kelas HashMap meluaskan kelas AbstrakMap dan mengimplementasikan antara muka Peta . Walau bagaimanapun, kelas LinkedHashMap adalah kelas kanak-kanak kelas HashMap iaitu kelas LinkedHashMap memanjangkan kelas HashMap.
- Kelas HashMap diperkenalkan dalam versi JDK 2.0 . Kelas LinkedHashMap diperkenalkan kemudian dalam versi JDK 4.0 .
- Kelas LinkedHashMap yang relatif lebih tinggi daripada HashMap kerana ia perlu mengekalkan susunan elemen yang dimasukkan dalam peta.
Kesimpulan:
LinkedHashMap hanya boleh digunakan di mana kita bimbang tentang urutan elemen yang dimasukkan dalam peta.