linkedhashmap java linkedhashmap example implementation
Denne selvstudie forklarer alt om LinkedHashMap i Java inklusive LinkedHashMap Eksempel og metoder, Implementering i Java, LinkedHashMap vs HashMap:
LinkedHashMap i Java er en implementering, der kombinerer HashTable og LinkedList implementering. Det implementerer kortgrænsefladen. Nøgleværdiparene i LinkedHashMap har en forudsigelig rækkefølge af iteration.
Ud over kortgrænsefladen udvider LinkedHashMap også HashMap-klassen.
=> Besøg her for at se Java Training Series for alle.
binær træimplementering i c ++ kildekode
Hvad du lærer:
LinkedHashMap I Java
Nogle af de vigtigste egenskaber ved LinkedHashMap er:
- Den indeholder nøglebaserede værdier.
- Opretholder rækkefølgen for indsættelse af nøgleværdipar.
- Det tillader ikke duplikater, det har unikke elementer.
- Det kan have en enkelt nul-nøgle. Men det tillader flere nulværdier.
- Java LinkedHashMap er ikke synkroniseret.
Erklæring om LinkedHashMap
Klassen LinkedHashMap i Java er en del af java.util-pakken.
Den generelle erklæring for denne klasse i Java er som følger:
public class LinkedHashMap extends HashMap implements Map
Her er K => type nøgler på kortet.
V => type værdier tilknyttet nøgler.
Klassehierarkiet for LinkedHashMap er vist nedenfor:
Som vist i ovenstående diagram arver LinkedHashMap HashMap- og AbstractMap-klassen og implementerer kortgrænsefladen.
LinkedHashMap-eksempel
Nedenfor er et simpelt 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()); } } }
Produktion:
Indholdet af LinkedHashMap:
1 EN
2 TO
3 TRE
4 FIRE
5 FEM
binær søgetræ implementering c ++
Konstruktører og metoder
Lad os diskutere konstruktører og metoder leveret af LinkedHashMap-klassen. Først vil vi diskutere konstruktørerne efterfulgt af metoder.
Konstruktører
Konstruktør prototype | Beskrivelse | |
---|---|---|
keySet | Indstil nøgleSæt () | Returnerer sæt nøgler på kortet. |
LinkedHashMap () | Standardkonstruktør til LinkedHashMap. | |
LinkedHashMap (int kapacitet) | Opretter et LinkedHashMap-objekt med en given kapacitet. | |
LinkedHashMap (int-kapacitet, float loadFactor) | Opretter et LinkedHashMap-objekt med given kapacitet og loadFactor. | |
LinkedHashMap (int-kapacitet, float loadFactor, boolsk adgangsbestilling) | Opretter et LinkedHashMap-objekt med en given kapacitet og loadFactor. Bestillingstilstanden (accessOrder) er også specificeret. | |
LinkedHashMap (kort m) | Opretter et LinkedHashMap-objekt og initialiserer det med værdierne fra kortet m sendt som et argument. |
Metoder
Metode | Metode Prototype | Beskrivelse |
---|---|---|
få | V get (Objektnøgle) | Returnerer værdien for den givne nøgle. |
klar | ugyldigt klart () | Rydder alle nøgleværdipar på kortet. |
indeholder værdi | boolean containValue (objektværdi) | Kontrollerer, om kortet indeholder en eller flere nøgler tilknyttet den givne værdi. Returnerer sandt, hvis ja. |
entrySet | Sæt | Returnerer sæt poster på kortet. |
for hver | ugyldig for hver (BiConsumer-handling) | Udfører den givne handling for alle poster på kortet. |
getOrDefault | V getOrDefault (Objektnøgle, V standardværdi) | Returnerer den værdi, der er tilknyttet nøglen. Hvis der ikke kortlægges nogen værdi, returneres standard. |
removeEldestEntry | beskyttet boolsk removeEldestEntry (Map.Entry ældste) | Fjerner den ældste post på kortet og returnerer sand ved fjernelse. |
udskift alle | ugyldig erstatte alle (BiFunction-funktion) | Påkalder den givne funktion på hver post og erstatter resultatet af funktionen med værdierne. |
værdier | Samlingsværdier () | Returnerer værdisamlingen på kortet. |
Implementering i Java
Java-programmet nedenfor viser implementeringen af LinkedHashMap ved at demonstrere de ovenfor diskuterede metoder.
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); } }
Produktion:
Oprindeligt LinkedHashMap: {en = rød, to = grøn, tre = blå}
LinkedHashMap 'colours_map' tom?: Falsk
Kortets størrelse: 3
Værdi for nøgle = ‘one’: Rød
colors_map indeholder key = ‘two’: true
colors_map indeholder værdi 'ree': false
slet element 'en': rød
Opdateret colour_map: {two = Green, three = Blue}
I dette program erklærer vi et farvekort og initialiserer det. Derefter bruger vi de forskellige metoder, der er diskuteret ovenfor, for at få resultaterne.
LinkedHashMap vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Tidskompleksiteten af grundlæggende operationer | O (1) | O (1) | O (1) |
Redskaber bestilte kort. | Implementerer uordnede kort. | ||
Bruger dobbeltkædet liste over skovle. | Bruger hash-tabel. | ||
Opretholder orden, når elementerne gentages. | Opretholder ikke ordren, når den gentages. | ||
Kræver mere hukommelse. | Kræver mindre hukommelse end LinkedHashMap. | ||
Grundlæggende handlinger som tilføjelse, fjernelse, søgning osv. Er langsommere. | Grundlæggende handlinger som at tilføje, fjerne søgning er hurtigere. |
HashMap Vs TreeMap Vs LinkedHashMap
Lad os nu sammenligne de tre kortimplementeringer, nemlig. HashMap, TreeMap og LinkedHashMap.
Den følgende tabel viser sammenligningen / forskellen.
Sammenligningsparameter | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Interface | Kort | Kort | Kort, SortedMap, NavigableMap |
Datastruktur | Liste over spande | Dobbeltkædet liste over skovle | Rød-sort træ |
Iterationsordre | Ingen bestilling opretholdt. | Sorteret efter indsætningsrækkefølgen | Sorteret efter den naturlige rækkefølge af elementer |
Null Keys | Er tilladt | Er tilladt | Ikke tilladt |
Synkronisering | Ikke synkroniseret | Ikke synkroniseret | Ikke synkroniseret |
Nøglekrav | Brug for at overskrive lig () og hashCode () metoder | Brug for at overskrive lig () og hashCode () metoder | Naturlig bestilling opretholdes, eller komparator skal leveres |
Ofte stillede spørgsmål
Q # 1) Hvad er LinkedHashMap i Java?
Svar: LinkedHashMap i Java implementeres som en kombination af HashTable og LinkedList. Det implementerer kortgrænsefladen. Det har en forudsigelig iterationsrækkefølge. Det bruger internt en dobbeltkoblet liste til poster.
Q # 2)Hvordan fungerer LinkedHashMap i Java?
åbner .jar filer windows 10
Svar: Det ligner HashMap, men adskiller sig fra HashMap i rækkefølgen af indsættelse, som LinkedHashMap opretholder. Elementerne i LinkedHashMap lagres på samme måde som de indtastes i datastrukturen.
Q # 3)Hvordan løber jeg gennem et LinkedHashMap?
Svar: Vi kan løbe gennem et LinkedHashMap ved hjælp af en iterator.
Følgende er de trin, som vi kan følge for at gentage gennem LinkedHashMap ved hjælp af iterator:
- Opret et nyt LinkedHashMap-objekt.
- Brug Put API-metoden til at indsætte nøgleværdipar på kortet.
- Call entrySet () API-metode for at få et sæt nøgleværdipar på kortet.
- Påkald iterator på dette sæt for at hente hvert nøgleværdipar ved hjælp af getKey () og getValue () API-metoder.
Q # 4)Hvad er brugen af LinkedHashMap i Java?
Svar: Hovedanvendelsen af LinkedHashMap i Java er at bruge den til at bevare indsættelsesrækkefølgen. Det kan også bruges til at bevare den adgangsordre, hvorved du får adgang til nøglerne. Da det er hurtigere end HashMap, kan LinkedHashMap bruges i stedet for HashMap, hvor ydeevnen er kritisk.
Q # 5)Er HashMap hurtigere end LinkedHashMap?
Svar: Begge er ens i ydeevne. HashMap har brug for mindre hukommelse sammenlignet med LinkedHashMap, da HashMap ikke opretholder adgangsordren. Således er HashMap relativt hurtigere.
Konklusion
I denne vejledning har vi diskuteret LinkedHashMap i Java. Vi har set detaljerne vedrørende klassedeklaration, klassehierarki, konstruktører og metoder.
Vi har også lært de primære forskelle mellem, LinkedHashMap og HashMap. Vi diskuterede også 3-vejs forskellen mellem LinkedHashMap, HashMap og TreeMap.
I vores kommende vejledning vil vi udforske flere emner om Java Collection Framework.
=> Pas på den enkle Java-træningsserie her.
Anbefalet læsning
- Java Reflection Tutorial med eksempler
- Dybdegående formørkelsesvejledninger til begyndere
- Hvad er en Java HashTable - HashTable-implementering og eksempel
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Adgang modifikatorer i Java - vejledning med eksempler
- Java SWING Tutorial: Container, komponenter og håndtering af begivenheder
- Java String indeholder () Metodevejledning med eksempler
- Java String med String Buffer og String Builder Tutorial