I denne opplæringen vil vi lære om Java LinkedHashMap-klassen og dens operasjoner ved hjelp av eksempler.
Den LinkedHashMapklassen av Java samlinger rammeverket gir hash bordet og lenket liste gjennomføring av kartgrensesnittet.
Den LinkedHashMapgrensesnitt utvider HashMap klassen for å lagre oppføringene i en nøkkeltabell. Den internt opprettholder en dobbeltkoblet liste blant alle oppføringene for å bestille oppføringene.

Opprette et LinkedHashMap
For å opprette en koblet hashmap, må vi importere java.util.LinkedHashMappakken først. Når vi har importert pakken, kan du lage sammenkoblede hashmaps i Java.
 // LinkedHashMap with initial capacity 8 and load factor 0.6 LinkedHashMap numbers = new LinkedHashMap(8, 0.6f); 
I koden ovenfor har vi opprettet en koblet hashmap med navn.
Her,
- Nøkkel - en unik identifikator som brukes til å knytte hvert element (verdi) til et kart
 - Verdi - elementer knyttet til tastene i et kart
 
Legg merke til delen new LinkedHashMap(8, 0.6). Her er den første parameteren kapasitet og den andre parameteren loadFactor .
- kapasitet - Kapasiteten til denne sammenkoblede hashmappen er 8. Det betyr at den kan lagre 8 oppføringer.
 - loadFactor - Belastningsfaktoren for dette tilknyttede hashmap er 0,6. Dette betyr at når hash-kartet vårt fylles ut med 60%, flyttes oppføringene til en ny hash-tabell med dobbel størrelse på den opprinnelige hash-tabellen.
 
Standard kapasitet og lastfaktor
Det er mulig å lage en koblet hashmap uten å definere kapasitet og lastfaktor. For eksempel,
 //LinkedHashMap with default capacity and load factor LinkedHashMap numbers1 = new LinkedHashMap(); 
Som standard
- kapasiteten til det tilknyttede hashmap vil være 16
 - lastfaktoren vil være 0,75
 
Merk : LinkedHashMapKlassen lar oss også definere rekkefølgen på oppføringene. For eksempel
 // LinkedHashMap with specified order LinkedHashMap numbers2 = new LinkedHashMap(capacity, loadFactor, accessOrder); 
Her er accessOrder en boolsk verdi. Standardverdien er false. I dette tilfellet bestilles oppføringer i den tilknyttede hashmap på grunnlag av innsettingsrekkefølgen.
Imidlertid, hvis truesendes som accessOrder, vil oppføringer i den tilknyttede hashmap bestilles fra minst nylig tilgang til sist tilgjengelige.
Opprette LinkedHashMap fra andre kart
Slik kan vi lage en koblet hashmap som inneholder alle elementene i andre kart.
 import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( // Creating a LinkedHashMap of even numbers LinkedHashMap evenNumbers = new LinkedHashMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("LinkedHashMap1: " + evenNumbers); // Creating a LinkedHashMap from other LinkedHashMap LinkedHashMap numbers = new LinkedHashMap(evenNumbers); numbers.put("Three", 3); System.out.println("LinkedHashMap2: " + numbers); ) ) 
Produksjon
LinkedHashMap1: (To = 2, Fire = 4) LinkedHashMap2: (To = 2, Fire = 4, Tre = 3)
Metoder for LinkedHashMap
Den LinkedHashMapklassen inneholder metoder som tillater oss å utføre ulike operasjoner på kartet.
Sett inn elementer i LinkedHashMap
put()- setter inn den spesifiserte nøkkel- / verdikartleggingen på kartetputAll()- setter inn alle oppføringene fra det spesifiserte kartet til dette kartetputIfAbsent()- setter inn den angitte nøkkel- / verdikartleggingen på kartet hvis den angitte nøkkelen ikke er til stede på kartet
For eksempel,
  import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( // Creating LinkedHashMap of even numbers LinkedHashMap evenNumbers = new LinkedHashMap(); // Using put() evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("Original LinkedHashMap: " + evenNumbers); // Using putIfAbsent() evenNumbers.putIfAbsent("Six", 6); System.out.println("Updated LinkedHashMap(): " + evenNumbers); //Creating LinkedHashMap of numbers LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); // Using putAll() numbers.putAll(evenNumbers); System.out.println("New LinkedHashMap: " + numbers); ) ) 
Produksjon
Opprinnelig LinkedHashMap: (To = 2, Fire = 4) Oppdatert LinkedHashMap: (To = 2, Fire = 4, Seks = 6) Ny LinkedHashMap: (En = 1, To = 2, Fire = 4, Seks = 6)
Få tilgang til LinkedHashMap Elements
1. Bruke entrySet (), keySet () og verdier ()
entrySet()- returnerer et sett med all nøkkel- / verdikartlegging av kartetkeySet()- returnerer et sett med alle tastene på kartetvalues()- returnerer et sett med alle verdiene på kartet
For eksempel,
 import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // Using entrySet() System.out.println("Key/Value mappings: " + numbers.entrySet()); // Using keySet() System.out.println("Keys: " + numbers.keySet()); // Using values() System.out.println("Values: " + numbers.values()); ) ) 
Produksjon
LinkedHashMap: (One = 1, Two = 2, Three = 3) Key / Value mappings: (One = 1, Two = 2, Three = 3) Keys: (One, Two, Three) Verdier: (1, 2, 3 )
2. Bruke get () og getOrDefault ()
get()- Returnerer verdien som er knyttet til den angitte nøkkelen. Hvis nøkkelen ikke blir funnet, returnerer dennull.getOrDefault()- Returnerer verdien som er knyttet til den angitte nøkkelen. Hvis nøkkelen ikke blir funnet, returnerer den den angitte standardverdien.
For eksempel,
 import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // Using get() int value1 = numbers.get("Three"); System.out.println("Returned Number: " + value1); // Using getOrDefault() int value2 = numbers.getOrDefault("Five", 5); System.out.println("Returned Number: " + value2); ) ) 
Produksjon
LinkedHashMap: (One = 1, Two = 2, Three = 3) Returnert nummer: 3 Returnert nummer: 5
Fjernet LinkedHashMap Elements
remove(key)- returnerer og fjerner oppføringen tilknyttet den angitte nøkkelen fra kartetremove(key, value)- fjerner bare oppføringen fra kartet hvis den spesifiserte nøkkelen tilordnet for å være den angitte verdien og returnerer en boolsk verdi
For eksempel,
 import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // remove method with single parameter int value = numbers.remove("Two"); System.out.println("Removed value: " + value); // remove method with two parameters boolean result = numbers.remove("Three", 3); System.out.println("Is the entry Three removed? " + result); System.out.println("Updated LinkedHashMap: " + numbers); ) ) 
Produksjon
LinkedHashMap: (One = 1, Two = 2, Three = 3) Fjernet verdi: 2 Er oppføringen (Three = 3) fjernet? Ekte oppdatert LinkedHashMap: (One = 1)
Andre metoder for LinkedHashMap
| Metode | Beskrivelse | 
|---|---|
clear() |  fjerner alle oppføringene fra kartet | 
containsKey() |  sjekker om kartet inneholder den angitte nøkkelen og returnerer en boolsk verdi | 
containsValue() |  sjekker om kartet inneholder den angitte verdien og returnerer en boolsk verdi | 
size() |  returnerer størrelsen på kartet | 
isEmpty() |  sjekker om kartet er tomt og returnerer en boolsk verdi | 
LinkedHashMap vs. HashMap
Både LinkedHashMapog HashMapimplementerer Mapgrensesnittet. Imidlertid er det noen forskjeller mellom dem.
LinkedHashMapopprettholder en dobbeltkoblet liste internt. På grunn av dette opprettholder den innsettingsrekkefølgen for elementene.- Den 
LinkedHashMapklassen krever mer lagringsplass ennHashMap. Dette fordiLinkedHashMapvedlikeholder lenkede lister internt. - Ytelsen til 
LinkedHashMaper tregere ennHashMap. 








