CodeGym /Java Blog /Acak /Antarmuka Peta di Jawa
John Squirrels
Level 41
San Francisco

Antarmuka Peta di Jawa

Dipublikasikan di grup Acak

Apa itu Antarmuka Peta Java

Antarmuka Java Map adalah bagian dari kerangka Java Collection, tetapi bukan merupakan subtipe dari antarmuka Collection. Jadi itu berperilaku berbeda dibandingkan dengan, katakanlah, Daftar, atau Objek koleksi lainnya. Setiap elemen Map<Key, Value> mewakili pasangan kunci-nilai. Baik Kunci dan nilai adalah beberapa objek. Semua kunci di peta tertentu adalah unik, sedangkan nilainya tidak, sehingga dapat diduplikasi. Anda mungkin menganggap Map di Java seperti sejenis kamus atau katalog toko online, tempat Anda dapat menemukan item apa pun menggunakan indeks uniknya. Kuncinya adalah pengidentifikasi unik dari nilai di Peta. Misalnya di Map<String, Item> String adalah ID dari beberapa Item dari toko online. Menurut dokumentasi Map memiliki Subinterfaces berikutnya:
    Binding ;
  • ConcurrentMap<K,V> ;
  • ConcurrentNavigableMap<K,V> ;
  • Konteks Pesan Logis ;
  • PesanKonteks ;
  • NavigableMap<K,V> ;
  • SOAPMessageContext ;
  • SortedMap<K,V> .
Dan Mengimplementasikan Kelas:
  • Peta Abstrak
  • Atribut
  • AuthProvider
  • ConcurrentHashMap
  • ConcurrentLewatiListMap
  • EnumMap
  • HashMap
  • Hashtable
  • IdentityHashMap
  • LinkedHashMap
  • PrinterStateReason
  • Properti
  • Pemberi
  • RenderingHints
  • SimpleBindings
  • Dukungan Data Tabular
  • Peta Pohon
  • UIDefault
  • LemahHashMap
  • Java AbstractMap adalah kelas abstrak yang mengimplementasikan sebagian besar antarmuka Peta.
  • Java HashMap adalah struktur data untuk menyimpan pasangan kunci-nilai menggunakan tabel hash.
  • Java TreeMap adalah struktur data yang menggunakan pohon, yaitu tampilan dengan kunci yang diurutkan.
  • WeakHashMap untuk menggunakan tabel hash dengan kunci lemah, tampilkan dengan nilai yang dapat dihapus oleh pengumpul sampah jika tidak lagi digunakan.
  • LinkedHashMap adalah peta dengan urutan penambahan elemen, memungkinkan iterasi dalam urutan penyisipan.
  • EnumMap memperluas kelas AbstractMap untuk digunakan dengan kunci enum.
  • IdentityHashMap menggunakan pemeriksaan kesetaraan referensi saat membandingkan dokumen, memetakan dengan kunci dibandingkan menggunakan operasi == alih-alih metode equals()
Di sini kami tertarik pada implementasi Antarmuka Peta yang paling populer: HashMap, TreeMap, dan LinkedHashMap. Omong-omong, urutan elemen peta bergantung pada implementasi tertentu. Katakanlah, TreeMap dan LinkedHashMap memiliki urutan elemen yang dapat diprediksi, sedangkan HashMap tidak.

Metode peta

Operasi utama dari setiap Peta adalah penyisipan, penghapusan, dan pencarian elemen.
  • public Object put(Object key, Object value) menyisipkan elemen ke dalam peta.
  • public void putAll(Map map) menyisipkan peta yang ditentukan di dalam peta.
  • public Object remove(Object key) menghapus entri sesuai dengan kunci yang ditentukan.
  • public Object get(Object key) mengembalikan nilai untuk kunci yang ditentukan.
  • public boolean containsKey(Object key) mencari kunci yang ditentukan dari peta ini
  • public Set keySet() mengembalikan tampilan Set yang berisi semua kunci
  • public Set entrySet() mengembalikan tampilan Set dengan semua kunci dan nilai.

Apa itu HashMap

Apa itu HashMap? Ini adalah implementasi paling populer dari antarmuka Map<Key,Value>. Struktur data ini didasarkan pada prinsip hashing.

Prinsip utama kerja HashMap: hashing

Untuk memahami apa itu hashmap dan cara kerjanya, mari kita bahas tentang fungsi hashing dan hash terlebih dahulu. Fungsi hash hanyalah fungsi dalam arti matematika. Jadi ada beberapa nilai input (objek, sepotong data) dan fungsi mengubahnya menggunakan aturan yang tepat menjadi nilai output - sebuah hash. Seringkali hash adalah angka heksadesimal dengan panjang yang sesuai. Aturan proses konversi bisa berbeda, tetapi tunduk pada prinsip-prinsip berikut:
  1. Input (objek) tertentu memiliki kode hash tertentu.
  2. Jika dua objek sama, kode hashnya juga sama. Kebalikannya tidak benar.
  3. Jika kode hash berbeda, objek pasti tidak sama.
  4. Terkadang objek yang berbeda dapat memiliki kode hash yang sama. Ini adalah peristiwa yang sangat tidak mungkin, bernama "tabrakan" dan fungsi hash yang berkualitas baik harus meminimalkan kemungkinan tabrakan.
Di Jawa, setiap objek memiliki kode hash. Itu dihitung dengan metode hashCode dari kelas Object, kelas parental dari semua Objek Java. Biasanya, pengembang mengganti metode ini untuk kelas mereka sendiri dan juga metode equals yang terkait dengannya.

HashMap: cara kerjanya

Jadi Kelas HashMap<K,V> karena setiap implementasi Peta terdiri dari kunci dan nilai. Ini menyimpan kunci menggunakan prinsip hashing. Di dalam pasangan nilai Kunci HashMap disimpan dalam "ember", ember ini bersama-sama membangun "tabel", sebuah array internal dari daftar tertaut dan ukuran awalnya adalah 16. HashMap di Java menggunakan kode hash kunci untuk menentukan keranjang tempat pasangan kunci/nilai harus dipetakan: Fitur rumit dari HashMap adalah bahwa setiap sel (keranjang) tabel [] menyimpan tidak hanya satu pasangan tetapi beberapa. Mereka tidak disimpan sebagai objek eksplisit (seperti LinkedList), tetapi sebagai rantai implisit. Rantai dibuat karena fakta bahwa setiap pasangan menyimpan tautan ke pasangan berikutnya. Artinya, semua pasangan HashMap tersebar di 16 rantai. Saat Anda memasukkan pasangan baru ke dalam tabel, hash kunci dipertimbangkan. Hash ini bukan fungsi kode hash yang dibangun ke dalam objek kunci. Itu dianggap berada di kisaran 0-15. Pasangan ditambahkan ke rantai pasangan yang disimpan dalam ember dengan indeks hash. Pendekatan ini memberi kita percepatan pencarian. Saat mencari pasangan dengan kunci, tidak perlu menelusuri seluruh tabel. Hash dari kunci dipertimbangkan dan hanya rantai yang disimpan dalam sel dengan indeks hash yang diperiksa. Jika ada terlalu banyak pasangan di HashMap, rantai menjadi terlalu panjang. Kemudian ukuran array bertambah, hash dari semua objek yang disimpan dihitung ulang, dan tersebar di sepanjang rantai baru.

Deklarasi HashMap

Jika Anda pergi ke kelas kode HashMap Anda akan menemukan deklarasi berikutnya:

public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
Di mana K adalah jenis kunci yang dipertahankan oleh peta ini dan V adalah jenis nilai yang dipetakan. Ini adalah contoh deklarasi HashMap dengan kunci Integer dan nilai String dalam kode Anda:

HashMap<Integer, String> myHashMap = new HashMap<Integer, String>();

Metode HashMap

Berikut adalah daftar metode HashMap.
  • Object get(Object key) mengembalikan nilai untuk kunci yang ditentukan;
  • Objek put(Kunci k, Nilai v) menyisipkan pemetaan nilai kunci ke dalam peta;
  • Hapus objek(Object key) menghapus pemetaan untuk kunci yang ditentukan dari peta ini jika ada;
  • void clear() menghapus semua pasangan kunci-nilai dari HashMap;
  • Object clone() mengembalikan salinan dangkal dari instance HashMap ini tanpa mengkloning kunci dan nilai;
  • boolean containsKey(Object key) mengembalikan true jika kunci yang ditentukan ditemukan di peta, false jika tidak;
  • boolean containsValue(Object Value) mengembalikan true jika kunci yang ditentukan ditemukan di peta, false jika tidak;
  • boolean isEmpty() mengembalikan true jika peta kosong, false jika tidak;
  • Set keySet() mengembalikan Set kunci yang diambil dari peta;
  • int size() mengembalikan jumlah pemetaan nilai kunci;
  • Collection values() mengembalikan kumpulan nilai peta;
  • Hapus objek(Object key) menghapus pasangan kunci-nilai untuk kunci yang ditentukan;
  • void putAll(Map m) menyalin semua elemen peta ke peta lainnya.

Contoh Java HashMap

Mari kita buat program dengan Java HashMap Contoh untuk mendemonstrasikan cara kerjanya:

import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;
 
public class HashMap {
 
   public static void main(String[] args) {
 
       {
 
           // HashMap declaration
           HashMap<Integer, String> myHashMap = new HashMap<Integer, String>();
 
           //Adding elements into HashMap
           myHashMap.put(7, "Johnny");
           myHashMap.put(8, "Ivy");
           myHashMap.put(1, "Rick");
           myHashMap.put(4, "Stan");
           myHashMap.put(3, "Kyle");
 
           //print out the map content using Iterator
           Set set = myHashMap.entrySet();
           Iterator iterator = set.iterator();
           while (iterator.hasNext()) {
               Map.Entry mapEntry = (Map.Entry) iterator.next();
               System.out.print("key: " + mapEntry.getKey() + " value: ");
               System.out.println(mapEntry.getValue());
           }
           System.out.println("get an element from myHashMap via key and print the value out:");
           System.out.println(myHashMap.get(8));
           //print out hashMap on standard way:
           System.out.println(myHashMap);
 
           // Get values based on key
           String var = myHashMap.get(2);
           //here we'll get null, we don't have such a key
           System.out.println("Value with key 2: " + var);
           var = myHashMap.get(7);
           System.out.println("Value with key 7: " + var);
 
           // Remove values based on key
           myHashMap.remove(4);
           System.out.println("myHashMap after removing element:");
           System.out.println(myHashMap);
           myHashMap.clear();
           System.out.println("myHashMap after total clearing:");
           System.out.println(myHashMap);
       }
 
   }
}
Hasil menjalankan program:

key: 1 value: Rick
key: 3 value: Kyle
key: 4 value: Stan
key: 7 value: Johnny
key: 8 value: Ivy
get an element from myHashMap via key and print the value out:
Ivy
{1=Rick, 3=Kyle, 4=Stan, 7=Johnny, 8=Ivy}
Value with key 2: null
Value with key 7: Johnny
myHashMap after removing element:
{1=Rick, 3=Kyle, 7=Johnny, 8=Ivy}
myHashMap after total clearing:
{}

Peta Pohon

TreeMap di Java juga mengimplementasikan antarmuka Map<Key,Value>, tetapi didasarkan pada struktur data pohon Merah-Hitam. Pohon terdiri dari "simpul" dan garis yang menghubungkan simpul - cabang". Simpul "akar" berada di bagian atas pohon. Dari akar, bisa ada cabang dan simpul. Ini adalah struktur hierarkis, Anda mungkin memikirkannya simpul ini sebagai "anak" dari akar. Simpul anak dapat memiliki anak sendiri - simpul yang lebih rendah. Simpul tanpa anak disebut "simpul akhir" atau "daun". Pohon biner adalah pohon, di mana setiap simpul memiliki nol, satu , atau dua anak. Pohon pencarian biner adalah sebuah struktur, di mana setiap node internal menyimpan kunci, dan terkadang nilai terkait, dan memiliki dua sub-pohon yang berbeda ("kiri" dan "kanan"). Pohon pencarian biner self-balancing adalah pohon pencarian biner berbasis node yang secara otomatis menjaga ketinggiannya (jumlah maksimal level di bawah akar) kecil dalam menghadapi penyisipan dan penghapusan item yang sewenang-wenang. Pohon merah-hitam adalah pohon biner seimbang dengan sifat-sifat:
  • Setiap simpul berwarna merah atau hitam
  • Akarnya selalu hitam
  • Setiap daun adalah simpul NIL (jenis kosong, nol) dan berwarna hitam
  • Jika sebuah simpul berwarna merah, anak-anaknya pasti berwarna hitam.
  • Setiap jalur sederhana dari simpul ke daun turunan berisi jumlah simpul hitam yang sama.

Fitur TreeMap

TreeMap menggunakan struktur data pohon untuk menyimpan kunci sebagai simpul dan mengurutkan kunci menggunakan algoritma Pohon Merah-Hitam. Jadi, TreeMap menyimpan entri-entrinya yang diurutkan sesuai dengan urutan natural dari kunci-kuncinya. Untuk angka natural adalah urutan menaik, untuk string — urutan abjad. Anda dapat menggunakan pembanding jika Anda perlu mengubah logika pemesanan. Menyortir objek secara alami adalah keuntungan besar dari TreeMap, serta menemukan beberapa objek menggunakan filter dan kondisi yang berbeda.

Metode TreeMap

  • Object get(Object key) mengembalikan nilai kunci yang sesuai;
  • Object put(Object key, Object value) menyisipkan pemetaan ke dalam peta;
  • Penghapusan objek(Object key) menghapus pemetaan untuk kunci ini jika TreeMap memuatnya;
  • boolean containsKey(Object key) mengembalikan true jika peta ini berisi pemetaan untuk kunci yang ditentukan;
  • boolean containsValue(Object value) mengembalikan true jika TreeMap memetakan satu atau lebih kunci ke nilai yang ditentukan;
  • Object firstKey() mengembalikan kunci pertama yang saat ini ada di peta yang diurutkan;
  • Objek lastKey() mengembalikan kunci terakhir yang saat ini ada di peta yang diurutkan;
  • void putAll(Map map) menyalin semua pemetaan dari peta yang ditentukan ke peta;
  • Set entrySet() mengembalikan tampilan set pemetaan
  • int size() mengembalikan jumlah pemetaan nilai kunci
  • Collection values() mengembalikan tampilan koleksi dari nilai
  • Object clone() mengembalikan salinan TreeMap yang dangkal
  • void clear() menghapus semua pemetaan dari TreeMap
  • SortedMap headMap(Object key_value) mengembalikan tampilan porsi peta yang kurang dari parameter key_value
  • Set keySet() mengembalikan tampilan Set dari kunci yang terdapat dalam peta hierarki
  • SortedMap subMap(K fromKey, K toKey) mengembalikan tampilan bagian peta ini yang kuncinya berkisar dari fromKey, inklusif, hingga toKey, eksklusif
  • Object firstKey() mengembalikan kunci pertama dari TreeMap.

Contoh TreeMap


import java.util.TreeMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
 
public class TreeMapExample {
 
   public static void main(String args[]) {
 
       //TreeMap declaration
       TreeMap<Integer, String> myTreeMap = new TreeMap<Integer, String>();
 
       //put elements to TreeMap
       myTreeMap.put(1, "Stuart");
       myTreeMap.put(23, "Michael");
       myTreeMap.put(7, "Johnny");
       myTreeMap.put(5, "Ivy");
       myTreeMap.put(2, "Alex");
 
       //Display and print out myTreeMap using Iterator
       Set set = myTreeMap.entrySet();
       Iterator iterator = set.iterator();
       while (iterator.hasNext()) {
           Map.Entry myEntry = (Map.Entry) iterator.next();
           System.out.print("key: " + myEntry.getKey() + " value: ");
           System.out.println(myEntry.getValue());
       }
       //TreeMap printed in classical way
       System.out.println(myTreeMap);
       //removing an element with the key =2
       myTreeMap.remove(2);
       //myTreeMap after removing:
       System.out.println(myTreeMap);
   }
}
Hasil menjalankan program:

key: 1 value: Stuart
key: 2 value: Alex
key: 5 value: Ivy
key: 7 value: Johnny
key: 23 value: Michael
{1=Stuart, 2=Alex, 5=Ivy, 7=Johnny, 23=Michael}
{1=Stuart, 5=Ivy, 7=Johnny, 23=Michael}

LinkedHashMap

LinkedHashMap adalah struktur data yang menggabungkan daftar tertaut dan peta hash. Memang, LinkedHashMap memperluas kelas HashMap dan mengimplementasikan antarmuka Peta, tetapi ada apa dengan daftar tertaut? Deklarasi LinkedHashMap:

Map <Integer, String> linkedHashMap = new LinkedHashMap <Integer, String>();
LinkedHashMap baru ini mewarisi properti dari HashMap (seperti tabel, loadFactor, threshold, size, entrySet), juga mendapatkan dua properti khusus:
  • header adalah kepala dari daftar tertaut ganda. Selama inisialisasi, ini menunjukkan dirinya sendiri
  • accessOrder menunjukkan cara mendapatkan akses ke elemen menggunakan iterator. Jika benar, di urutan akses terakhir. Jika salah, akses akan sesuai dengan urutan elemen yang dimasukkan.
Daftar tertaut ini menentukan urutan iterasi. Biasanya, ini adalah urutan penyisipan kunci ke dalam peta.

Metode LinkedHashMap

  • Object get(Object key) mengembalikan nilai ke mana kunci yang ditentukan dipetakan, atau null jika peta ini tidak berisi pemetaan untuk kunci
  • void clear() menghapus semua pemetaan dari peta.
  • boolean containsKey(Object key) mengembalikan true jika elemen yang ditentukan dipetakan oleh satu atau lebih kunci
  • boolean removeEldestEntry(Map.Entry eldest) mengembalikan nilai true jika peta menghapus entri tertua dari peta
  • Set<Map.Entry<K,V>> entrySet() mengembalikan tampilan Set dari pemetaan yang terdapat dalam peta ini
  • void forEach(BiConsumer<? super K,? super V> action) melakukan tindakan yang diberikan untuk setiap entri di peta ini hingga semua entri diproses atau tindakan melontarkan pengecualian.
  • Objek getOrDefault(Object key, V defaultValue) mengembalikan nilai ke mana kunci yang ditentukan dipetakan. Jika peta tidak berisi pemetaan untuk kunci mengembalikan defaultValue.
  • Set<K> keySet() mengembalikan tampilan Set dari kunci yang ada di peta
  • boolean removeEldestEntry(Map.Entry<K,V> eldest) mengembalikan nilai true jika peta ini harus menghapus entri tertuanya
  • void replaceAll(BiFunction<? super K,? super V,? extends V> function) mengganti setiap nilai entri dengan hasil pemanggilan fungsi yang diberikan pada entri tersebut sampai semua entri telah diproses atau fungsi melontarkan pengecualian.
  • Collection<v>values() mengembalikan tampilan Collection dari nilai yang terdapat di peta

Contoh LinkedHashMap


import java.util.LinkedHashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
   public class HashLinkedListExample {
       public static void main(String args[]) {
           // LinkedHashMap Declaration
           LinkedHashMap<Integer, String> myLinkedHashMap =
                   new LinkedHashMap<Integer, String>();
 
           //Adding elements into LinkedHashMap
           myLinkedHashMap.put(7, "Johnny");
           myLinkedHashMap.put(12, "Rick");
           myLinkedHashMap.put(1, "Kyle");
           myLinkedHashMap.put(5, "Percy");
           myLinkedHashMap.put(85, "Sebastian");
 
           // Generate a Set of entries
           Set set = myLinkedHashMap.entrySet();
 
           // Display and print out the nodes  of LinkedHashMap
           Iterator iterator = set.iterator();
           while(iterator.hasNext()) {
               Map.Entry me = (Map.Entry)iterator.next();
               System.out.print("key: "+ me.getKey() +
                       " value: "+me.getValue()+"\n");
           }
           //print out HashLinkedMap on standard way:
           System.out.println(myLinkedHashMap);
           myLinkedHashMap.put(21, "Ivy");
           System.out.println(myLinkedHashMap);
           myLinkedHashMap.remove(12);
           System.out.println(myLinkedHashMap);
           myLinkedHashMap.put(12, "Ronny");
           System.out.println(myLinkedHashMap);
           myLinkedHashMap.put(1, "Stan");
           System.out.println(myLinkedHashMap);
       }
   }
Di sini kita membuat LinkedHashMap baru, menambahkan lima elemen, lalu mencetaknya menggunakan iterator dan dengan cara klasik. Seperti yang Anda lihat, LinkedHashMap mempertahankan urutan penyisipan. Setelah itu kami menghapus elemen dari Peta kami, lalu menambahkan yang baru dan kemudian - elemen lain dengan kunci yang sudah ada di peta. Itu menggantikan nilai lama yang dipetakan ke kunci ini. Hasil menjalankan program:

key: 7 value: Johnny
key: 12 value: Rick
key: 1 value: Kyle
key: 5 value: Percy
key: 85 value: Sebastian
{7=Johnny, 12=Rick, 1=Kyle, 5=Percy, 85=Sebastian}
{7=Johnny, 12=Rick, 1=Kyle, 5=Percy, 85=Sebastian, 21=Ivy}
{7=Johnny, 1=Kyle, 5=Percy, 85=Sebastian, 21=Ivy}
{7=Johnny, 1=Kyle, 5=Percy, 85=Sebastian, 21=Ivy, 12=Ronny}
{7=Johnny, 1=Stan, 5=Percy, 85=Sebastian, 21=Ivy, 12=Ronny}

Perbandingan HashMap, TreeMap, LinkedHashMap

HashMap, TreeMap, dan LinkedHashMap adalah implementasi dari antarmuka Peta. HashMap dan LinkedHashMap adalah struktur data yang memiliki kunci hash. TreeMap menggunakan urutan alami kuncinya untuk mengatur pohon pencarian. Memesan:
  • HashMap tidak mempertahankan pesanan apa pun.
  • TreeMap mengurutkan entri dalam urutan kunci yang menaik.
  • LinkedHashMap mempertahankan urutan penyisipan.
Kunci kosong:
  • HashMap dan LinkedHashMap memungkinkan memiliki satu kunci nol.
  • LinkedHashMap tidak mengizinkan kunci nol jika kunci menggunakan pengurutan alami atau Pembanding tidak mendukung perbandingan pada ley nol.
Mari kita lihat contoh peta Java yang menyertakan ketiga implementasi yang diulas dalam artikel ini:

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.TreeMap;
 
public class CompMapImpl {
 
 
    public static void main(String[] args) {
        HashMap<Integer, String> hashMap = new HashMap<>();
        TreeMap<Integer, String> treeMap = new TreeMap<>();
        LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
        hashMap.put(5, "Ivy");
        hashMap.put(null, "Joker");
        hashMap.put(1, "First");
        hashMap.put(2, "Kyle");
        hashMap.put(-2, "Paul");
        hashMap.put(3, "Sandy");
 
 
        treeMap.put(5, "Ivy");
        //treeMap.put(null,"Joker");
        treeMap.put(1, "First");
        treeMap.put(2, "Kyle");
        treeMap.put(-2, "Paul");
        treeMap.put(3, "Sandy");
 
        linkedHashMap.put(5, "Ivy");
        linkedHashMap.put(null, "Joker");
        linkedHashMap.put(1, "First");
        linkedHashMap.put(2, "Kyle");
        linkedHashMap.put(-2, "Paul");
        linkedHashMap.put(3, "Sandy");
        System.out.println("HashMap");
        System.out.println(hashMap);
        System.out.println("TreeMap");
        System.out.println(treeMap);
        System.out.println("LinkedHashMap");
        System.out.println(linkedHashMap);
 
 
        LinkedHashMap<String, String> linkedHashMap1= new LinkedHashMap<> ();
        linkedHashMap1.put(null, "Andy");
        System.out.println(linkedHashMap1);
    }
}
Berikut adalah hasil dari menjalankan program ini:

HashMap
{null=Joker, 1=First, -2=Paul, 2=Kyle, 3=Sandy, 5=Ivy}
TreeMap
{-2=Paul, 1=First, 2=Kyle, 3=Sandy, 5=Ivy}
LinkedHashMap
{5=Ivy, null=Joker, 1=First, 2=Kyle, -2=Paul, 3=Sandy}
{null=Andy}
Seperti yang bisa kita lihat, urutan elemen di HashMap tidak jelas, di treeMap tergantung pada kunci, di LinkedHashMap tentang urutan penyisipan. Jika kami mencoba memasukkan kunci nol ke linkedHashMap, kami akan mendapatkan NullPointerException, tetapi di linkedHashMap1, di mana kuncinya adalah String, kami dapat melakukannya. Peta hash adalah implementasi peta tujuan umum terbaik. Ini memberikan kecepatan pencarian maksimum, penyimpanan cepat, dan operasi pengambilan, tetapi Anda harus ingat tentang urutannya yang kacau. Peta hash tertaut mewarisi keunggulan HashMap dan mendapatkan pesanan untuk kuncinya. Namun, itu berisi linkedList, yang relatif mahal dalam hal memori. itu lebih lambat dari HashMap dalam mencari dan sedikit lebih lambat untuk menambah/menghapus karena memelihara daftar tertaut. Peta pohon menyimpan kunci yang diurutkan dalam urutan menaik. Namun, Untuk memperkuat apa yang Anda pelajari, kami sarankan Anda menonton video pelajaran dari Kursus Java kami
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION