CodeGym /Blog Java /rawak /LinkedHashMap dalam Java
John Squirrels
Tahap
San Francisco

LinkedHashMap dalam Java

Diterbitkan dalam kumpulan

Apakah LinkedHashMap di Java?

Kelas LinkedHashMap bagi rangka kerja Koleksi ialah pelaksanaan Hashtable dan LinkedList bagi antara muka Peta . Ia menyimpan entrinya dalam Hashtable dan menggunakan senarai dua pautan secara dalaman untuk mengekalkan susunan sisipan. LinkedList ini mentakrifkan susunan sisipan yang merupakan susunan kekunci dimasukkan ke dalam Peta . HashMap memberikan faedah penyisipan cepat , carian dan pemadaman tetapi dalam LinkedHashMap pelaksanaan LinkedList mengekalkan susunan sisipan juga. LinkedHashMap dalam Java - 1

Ciri LinkedHashMap

  1. Ia mengandungi nilai berdasarkan kunci.
  2. Ia mengandungi elemen unik.
  3. Ia mungkin mempunyai satu kunci null dan beberapa nilai null.
  4. Ia tidak disegerakkan.
  5. Ia mengekalkan susunan sisipan yang menyebabkan lelaran menjadi lebih mahal.

Faktor Prestasi

Prestasi LinkedHashMap bergantung terutamanya pada dua faktor yang diterangkan di bawah.

Kapasiti

Kapasiti bermaksud bilangan entri yang boleh disimpannya. Kapasiti lalai ialah 16 jika tiada parameter disediakan. Faktor beban Faktor beban bermaksud apabila HashMap diisikan kepada peratusan tertentu yang disediakan sebagai parameter, HashMap baharu dicipta yang bersaiz dua kali ganda, dan semua entri dipindahkan ke yang baharu ini. Faktor muatan lalai untuk HashMap ialah 0.75 . Ia juga dikenali sebagai nisbah isian .

Pengisytiharan LinkedHashMap

Untuk mencipta LinkedHashMap , pertama, kita perlu mengimport pakej, iaitu java.util.LinkedHashMap .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Di sini, Key ialah jenis kekunci dalam peta. Nilai ialah jenis nilai yang dipetakan dalam peta. 12 ialah kapasiti yang bermaksud ia akan menyimpan 12 entri dalam peta. 0.5f ialah faktor beban yang bermaksud apabila 50% diisi maka ia akan mencipta Peta baharu dan memindahkan semua nilai ke yang baharu ini.

Kaedah Biasa LinkedHashMap

Berikut ialah senarai beberapa kaedah biasa LinkedHashMap .
Kaedah Penerangan
jelas() Mengalih keluar semua pemetaan dalam peta.
containsValue(Nilai objek) Mengembalikan benar jika peta memetakan kunci kepada nilai yang ditentukan.
entrySet() Mengembalikan paparan Tetapkan pemetaan dalam peta.
dapatkan (kunci objek) Mengembalikan nilai terhadap kunci yang ditentukan atau null jika tiada kunci ditentukan.
keySet() Mengembalikan paparan Tetapkan kekunci dalam peta.
nilai() Mengembalikan paparan Koleksi nilai dalam peta.
getOrDefault(Kunci objek, V defaultValue) Mengembalikan nilai yang dikaitkan dengan kunci yang ditentukan atau defaultValue jika tiada kunci dikaitkan.

Contoh LinkedHasMap

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

Pengeluaran

LinkedHashMap1: {One=1, Three=3} LinkedHashMap2: {Dua=2, One=1, Three=3} Pemetaan Kunci/Nilai: [Dua=2, Satu=1, Tiga=3] Kekunci: [Dua, Satu , Tiga] Nilai: [2, 1, 3] Nombor Dikembalikan: 3 Nombor Dikembalikan: 5 Nilai dialih keluar: 2 pemetaan Kunci/Nilai: [Satu=1, Tiga=3]

LinkedHashMap lwn HashMap

Mari lihat beberapa perbezaan antara mereka, manakala kedua-duanya melaksanakan antara muka Peta .
  1. LinkedHashMap mengekalkan susunan sisipan kerana ia melaksanakan senarai pautan dua kali secara dalaman.
  2. LinkedHashMap memerlukan lebih banyak storan kerana ia melaksanakan LinkedList .
  3. Berkenaan prestasi, LinkedHashMap adalah lebih perlahan daripada HashMap .

Kesimpulan

Kami harap anda memahami kelas LinkedHashMap di Java, kaedahnya yang berbeza dan pelaksanaannya. Jangan ragu untuk berlatih dan kembali apabila anda memerlukan lebih banyak bantuan. Selamat belajar!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION