CodeGym /Java Blog /Random /LinkedHashMap sa Java
John Squirrels
Antas
San Francisco

LinkedHashMap sa Java

Nai-publish sa grupo

Ano ang LinkedHashMap sa Java?

Ang LinkedHashMap class ng Collections framework ay ang Hashtable at LinkedList na pagpapatupad ng Map interface. Iniimbak nito ang mga entry nito sa isang Hashtable at gumagamit ng dobleng naka-link na listahan sa loob upang mapanatili ang pagkakasunud-sunod ng pagpapasok. Tinutukoy ng LinkedList na ito ang insertion order na kung saan ang pagkakasunud-sunod kung saan ang mga key ay ipinasok sa Map . Ang HashMap ay nagbigay ng benepisyo ng mabilis na pagpasok , paghahanap , at pagtanggal ngunit sa LinkedHashMap ang pagpapatupad ng LinkedList ay nagpapanatili din ng pagkakasunud-sunod ng pagpapasok. LinkedHashMap sa Java - 1

Mga Tampok ng LinkedHashMap

  1. Naglalaman ito ng mga halaga batay sa susi.
  2. Naglalaman ito ng mga natatanging elemento.
  3. Maaaring mayroon itong isang null key at maramihang null value.
  4. Ito ay hindi naka-synchronize.
  5. Pinapanatili nito ang pagkakasunud-sunod ng pagpapasok na nagiging sanhi ng pag-ulit upang maging mas mahal.

Mga Salik sa Pagganap

Ang pagganap ng LinkedHashMap ay pangunahing nakasalalay sa dalawang salik na inilalarawan sa ibaba.

Kapasidad

Ang kapasidad ay nangangahulugan ng bilang ng mga entry na maiimbak nito. Ang default na kapasidad ay 16 kung walang ibinigay na parameter. Load factor Ang load factor ay nangangahulugang sa tuwing ang HashMap ay na-populate sa isang partikular na porsyento na ibinigay bilang isang parameter, isang bagong HashMap ang nalilikha na doble ang laki, at lahat ng mga entry ay inililipat sa bagong ito. Ang default na load factor para sa isang HashMap ay 0.75 . Kilala rin ito bilang fill ratio .

Deklarasyon ng LinkedHashMap

Upang lumikha ng LinkedHashMap , una, kailangan naming i-import ang package, na java.util.LinkedHashMap .

LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Dito, ang Key ay ang uri ng mga key sa mapa. Ang halaga ay ang uri ng mga nakamapang halaga sa mapa. 12 ay ang kapasidad na nangangahulugan na ito ay mag-imbak ng 12 mga entry sa mapa. Ang 0.5f ay ang load factor na nangangahulugang kapag 50% ang na-populate, lilikha ito ng bagong Map at ililipat ang lahat ng value sa bagong ito.

Mga Karaniwang Paraan ng LinkedHashMap

Narito ang isang listahan ng ilang karaniwang paraan ng LinkedHashMap .
Paraan Paglalarawan
malinaw() Tinatanggal ang lahat ng mga pagmamapa sa mapa.
containsValue(Object value) Nagbabalik ng true kung imamapa ng mapa ang susi sa tinukoy na halaga.
entrySet() Ibinabalik ang Set view ng mga pagmamapa sa mapa.
get(Object key) Ibinabalik ang halaga laban sa tinukoy na key o null kung walang key na tinukoy.
keySet() Ibinabalik ang Set view ng mga key sa mapa.
values() Ibinabalik ang view ng Koleksyon ng mga halaga sa mapa.
getOrDefault(Object key, V defaultValue) Ibinabalik ang value kung saan nauugnay ang tinukoy na key o defaultValue kung walang key na nauugnay.

Halimbawa ng 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());
    }
}

Output

LinkedHashMap1: {One=1, Three=3} LinkedHashMap2: {Two=2, One=1, Three=3} Key/Value mappings: [Two=2, One=1, Three=3] Keys: [Two, One , Tatlo] Mga Value: [2, 1, 3] Ibinalik na Numero: 3 Ibinalik na Numero: 5 Inalis na halaga: 2 Key/Value mapping: [Isa=1, Tatlo=3]

LinkedHashMap kumpara sa HashMap

Tingnan natin ang ilang pagkakaiba sa pagitan nila, samantalang parehong nagpapatupad ng Map interface.
  1. Pinapanatili ng LinkedHashMap ang insertion order habang ipinapatupad nito ang dobleng naka-link na listahan sa loob.
  2. Ang LinkedHashMap ay nangangailangan ng higit pang storage habang ipinapatupad nito ang LinkedList .
  3. Tungkol sa pagganap, ang LinkedHashMap ay mas mabagal kaysa sa HashMap .

Konklusyon

Umaasa kaming naiintindihan mo ang LinkHashMap na klase sa Java, ang iba't ibang pamamaraan nito, at ang kanilang pagpapatupad. Huwag mag-atubiling magsanay at bumalik sa tuwing kailangan mo ng karagdagang tulong. Maligayang pag-aaral!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION