linkedhashmap java linkedhashmap example implementation
Denne opplæringen forklarer alt om LinkedHashMap i Java Inkludert LinkedHashMap Eksempel og metoder, Implementering i Java, LinkedHashMap vs HashMap:
LinkedHashMap i Java er en implementering som kombinerer HashTable og LinkedList implementering. Den implementerer Map-grensesnittet. Nøkkelverdiparene til LinkedHashMap har en forutsigbar rekkefølge av iterasjon.
I tillegg til Map-grensesnitt, utvider LinkedHashMap også HashMap-klassen.
=> Besøk her for å se Java Training Series for alle.
hvordan lage en dobbeltkoblet liste i java
Hva du vil lære:
LinkedHashMap I Java
Noen av hovedegenskapene til LinkedHashMap er:
- Den inneholder nøkkelbaserte verdier.
- Opprettholder rekkefølgen for innsetting av nøkkelverdipar.
- Det tillater ikke duplikater, den har unike elementer.
- Den kan ha en enkelt nullnøkkel. Men det tillater flere nullverdier.
- Java LinkedHashMap er ikke synkronisert.
Erklæring om LinkedHashMap
LinkedHashMap-klassen i Java er en del av java.util-pakken.
Den generelle erklæringen for denne klassen i Java er som følger:
public class LinkedHashMap extends HashMap implements Map
Her K => type nøkler på kartet.
V => type verdier kartlagt til nøkler.
Klassehierarkiet til LinkedHashMap er vist nedenfor:
Som vist i diagrammet ovenfor, arver LinkedHashMap HashMap- og AbstractMap-klassen og implementerer kartgrensesnittet.
LinkedHashMap Eksempel
Nedenfor er et enkelt eksempel.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Produksjon:
Innholdet i LinkedHashMap:
1 EN
2 TO
3 TRE
4 FIRE
5 FEM
Konstruktører og metoder
La oss diskutere konstruktørene og metodene som tilbys av LinkedHashMap-klassen. Først vil vi diskutere konstruktørene etterfulgt av metoder.
Konstruktører
Konstruktørprototype | Beskrivelse | |
---|---|---|
keySet | Set keySet () | Returnerer sett med nøkler på kartet. |
LinkedHashMap () | Standardkonstruktør for LinkedHashMap. | |
LinkedHashMap (int kapasitet) | Oppretter et LinkedHashMap-objekt med en gitt kapasitet. | |
LinkedHashMap (int kapasitet, float loadFactor) | Oppretter et LinkedHashMap-objekt med gitt kapasitet og loadFactor. | |
LinkedHashMap (int kapasitet, float loadFactor, boolsk tilgangsbestilling) | Oppretter et LinkedHashMap-objekt med en gitt kapasitet og loadFactor. Bestillingsmodus (accessOrder) er også spesifisert. | |
LinkedHashMap (Kart m) | Oppretter et LinkedHashMap-objekt og initialiserer det med verdiene fra kartet m som et argument. |
Metoder
Metode | Metode Prototype | Beskrivelse |
---|---|---|
få | V get (Objektnøkkel) | Returnerer verdien for den gitte nøkkelen. |
klar | ugyldig klart () | Fjerner alle nøkkelverdipar på kartet. |
inneholder verdi | boolean containsValue (Objektverdi) | Sjekker om kartet inneholder en eller flere nøkler tilordnet den gitte verdien. Returnerer sant hvis ja. |
entrySet | Sett | Returnerer sett med oppføringer i kartet. |
for hver | ugyldig forEach (BiConsumer action) | Utfører den gitte handlingen for alle oppføringene på kartet. |
getOrDefault | V getOrDefault (Objektnøkkel, V defaultValue) | Returnerer verdien som er tilordnet nøkkelen. Hvis ingen verdi er kartlagt, returneres standard. |
removeEldestEntry | beskyttet boolsk removeEldestEntry (Map.Entry eldste) | Fjerner eldste oppføring på kartet og returnerer sant ved fjerning. |
erstatte alle | ugyldig erstatte alle (BiFunction-funksjon) | Påkaller den gitte funksjonen på hver oppføring og erstatter resultatet av funksjonen med verdiene. |
verdier | Samlingsverdier () | Returnerer samlingen av verdier i kartet. |
Implementering i Java
Java-programmet nedenfor viser implementeringen av LinkedHashMap ved å demonstrere metodene som er diskutert ovenfor.
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Produksjon:
Opprinnelig LinkedHashMap: {en = rød, to = grønn, tre = blå}
LinkedHashMap ‘colours_map’ tom?: False
Kartets størrelse: 3
Verdi for nøkkel = ‘en’: Rød
colours_map inneholder key = ‘two’: true
colours_map inneholder verdien ‘ree’: false
slett element ‘en’: Rød
Oppdaterte farger_kart: {two = Green, three = Blue}
I dette programmet erklærer vi et fargekart og initialiserer det. Deretter bruker vi de forskjellige metodene som er diskutert ovenfor for å få resultatene.
LinkedHashMap vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Tidskompleksiteten til grunnleggende operasjoner | O (1) | O (1) | O (1) |
Redskaper bestilte kart. | Implementerer uordnede kart. | ||
Bruker dobbelt koblet liste med bøtter. | Bruker hasjbord. | ||
Opprettholder orden når det gjentas elementene. | Opprettholder ikke bestillingen når den gjentas. | ||
Krever mer minne. | Krever mindre minne enn LinkedHashMap. | ||
Grunnleggende operasjoner som å legge til, fjerne, søke osv. Er tregere. | Grunnleggende operasjoner som å legge til, fjerne søk er raskere. |
HashMap Vs TreeMap Vs LinkedHashMap
La oss nå sammenligne de tre kartimplementeringene, nemlig. HashMap, TreeMap og LinkedHashMap.
hvordan du sender en matrise som en parameter i java
Tabellen nedenfor viser sammenligningen / forskjellen.
Sammenligningsparameter | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Grensesnitt | Kart | Kart | Kart, SortedMap, NavigableMap |
Data struktur | Liste over bøtter | Dobbeltkoblet liste med skuffer | Rød-svart tre |
Iterasjonsordre | Ingen bestilling opprettholdt. | Sortert i henhold til innsettingsrekkefølgen | Sortert etter den naturlige rekkefølgen av elementer |
Null Keys | Er tillatt | Er tillatt | Ikke tillatt |
Synkronisering | Ikke synkronisert | Ikke synkronisert | Ikke synkronisert |
Nøkkelkrav | Trenger å overskrive lik () og hashCode () -metoder | Trenger å overskrive lik () og hashCode () -metoder | Naturlig bestilling opprettholdes eller komparator må leveres |
ofte stilte spørsmål
Q # 1) Hva er LinkedHashMap i Java?
Svar: LinkedHashMap i Java er implementert som en kombinasjon av HashTable og LinkedList. Den implementerer kartgrensesnittet. Den har en forutsigbar iterasjonsrekkefølge. Den bruker internt en dobbeltkoblet liste for oppføringer.
Q # 2)Hvordan fungerer LinkedHashMap i Java?
Svar: Det ligner på HashMap, men skiller seg fra HashMap i rekkefølgen på innsettingen som LinkedHashMap opprettholder. Elementene i LinkedHashMap lagres på samme måte som de blir lagt inn i datastrukturen.
Q # 3)Hvordan går jeg gjennom et LinkedHashMap?
Svar: Vi kan gå gjennom en LinkedHashMap ved hjelp av en iterator.
Følgende er trinnene vi kan følge for å gjenta gjennom LinkedHashMap ved hjelp av iterator:
- Opprett et nytt LinkedHashMap-objekt.
- Bruk Put API-metoden for å sette inn nøkkelverdipar på kartet.
- Call entrySet () API-metode for å få et sett med nøkkelverdipar på kartet.
- Påkalle iterator på dette settet for å hente hvert nøkkelverdipar ved hjelp av getKey () og getValue () API-metoder.
Q # 4)Hva er bruken av LinkedHashMap i Java?
Svar: Hovedbruken av LinkedHashMap i Java er å bruke den til å bevare innsettingsrekkefølgen. Den kan også brukes til å bevare tilgangsordren ved hjelp av hvilken tastene du får tilgang til. Siden det er raskere enn HashMap, kan LinkedHashMap brukes i stedet for HashMap der ytelsen er kritisk.
Q # 5)Er HashMap raskere enn LinkedHashMap?
Svar: Begge er like i ytelse. HashMap trenger mindre minne sammenlignet med LinkedHashMap da HashMap ikke opprettholder tilgangsordren. Dermed er HashMap relativt raskere.
Konklusjon
I denne opplæringen har vi diskutert LinkedHashMap i Java. Vi har sett detaljene angående klassedeklarasjon, klassehierarki, konstruktører og metoder.
hvordan åpne .jar på windows 10
Vi har også lært de primære forskjellene mellom, LinkedHashMap og HashMap. Vi diskuterte også 3-veis forskjellen mellom LinkedHashMap, HashMap og TreeMap.
I vår kommende opplæring vil vi utforske flere emner på Java Collection Framework.
=> Se opp den enkle Java-treningsserien her.
Anbefalt lesing
- Java Reflection Tutorial med eksempler
- In-Depth Eclipse Tutorials For Beginners
- Hva er en Java HashTable - HashTable-implementering og eksempel
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Få tilgang til modifikatorer i Java - opplæring med eksempler
- Java SWING Tutorial: Container, Components and Event Handling
- Java String inneholder () Metodeopplæring med eksempler
- Java String with String Buffer and String Builder Tutorial