linkedhashmap java linkedhashmap example implementation
Denna handledning förklarar allt om LinkedHashMap i Java inklusive LinkedHashMap Exempel och metoder, Implementering i Java, LinkedHashMap vs HashMap:
LinkedHashMap i Java är en implementering som kombinerar HashTable och LinkedList-implementering. Det implementerar Map-gränssnittet. Nyckel-värde-paren för LinkedHashMap har en förutsägbar iterationsordning.
Förutom Map-gränssnittet utökar LinkedHashMap också HashMap-klassen.
=> Besök här för att se Java Training Series för alla.
hur man skapar en dubbelt länkad lista i java
Vad du kommer att lära dig:
LinkedHashMap i Java
Några av de viktigaste egenskaperna för LinkedHashMap är:
- Den innehåller nyckelbaserade värden.
- Behåller ordningen för infogning av nyckel-värdepar.
- Det tillåter inte dubbletter, det har unika element.
- Den kan ha en enda nollnyckel. Men det tillåter flera nollvärden.
- Java LinkedHashMap synkroniseras inte.
Förklaring av LinkedHashMap
Klassen LinkedHashMap i Java är en del av paketet java.util.
Den allmänna deklarationen för denna klass i Java är som följer:
public class LinkedHashMap extends HashMap implements Map
Här är K => typ av nycklar på kartan.
V => typ av värden mappade till nycklar.
Klasshierarkin för LinkedHashMap visas nedan:
Som visas i ovanstående diagram ärver LinkedHashMap HashMap- och AbstractMap-klassen och implementerar Map-gränssnittet.
LinkedHashMap Exempel
Nedan följer ett enkelt exempel.
hur man öppnar filer med java
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:
Innehållet i LinkedHashMap:
1 ETT
2 TVÅ
3 TRE
4 Fyra
5 FEM
Konstruktörer och metoder
Låt oss diskutera konstruktörerna och metoderna från klassen LinkedHashMap. Först kommer vi att diskutera konstruktörerna följt av metoder.
Konstruktörer
Konstruktör prototyp | Beskrivning | |
---|---|---|
keySet | Set keySet () | Returnerar uppsättning nycklar på kartan. |
LinkedHashMap () | Standardkonstruktör för LinkedHashMap. | |
LinkedHashMap (int-kapacitet) | Skapar ett LinkedHashMap-objekt med en given kapacitet. | |
LinkedHashMap (int-kapacitet, float loadFactor) | Skapar ett LinkedHashMap-objekt med given kapacitet och loadFactor. | |
LinkedHashMap (int capacity, float loadFactor, boolean accessOrder) | Skapar ett LinkedHashMap-objekt med en given kapacitet och loadFactor. Beställningsläget (accessOrder) anges också. | |
LinkedHashMap (Karta m) | Skapar ett LinkedHashMap-objekt och initialiserar det med värdena från kartan som skickats som ett argument. |
Metoder
Metod | Metodprototyp | Beskrivning |
---|---|---|
skaffa sig | V get (Objektnyckel) | Returnerar värdet för den angivna nyckeln. |
klar | ogiltig rensa () | Rensar alla nyckel-värdepar på kartan. |
innehållerVärde | boolean containsValue (Objektvärde) | Kontrollerar om kartan innehåller en eller flera tangenter mappade till det angivna värdet. Returnerar sant om ja. |
entrySet | Uppsättning | Returnerar uppsättningen poster på kartan. |
för varje | void forEach (BiConsumer action) | Utför den givna åtgärden för alla poster på kartan. |
getOrDefault | V getOrDefault (Objektnyckel, V defaultValue) | Returnerar värdet som är mappat till nyckeln. Om inget värde mappas returneras standard. |
removeEldestEntry | skyddad boolean removeEldestEntry (Map.Entry äldsta) | Tar bort den äldsta posten på kartan och returnerar true vid borttagning. |
Ersätt alla | ogiltig ersätta Alla (BiFunction-funktion) | Påkallar den givna funktionen på varje post och ersätter funktionens resultat med värdena. |
värden | Samlingsvärden () | Returnerar värdesamlingen på kartan. |
Implementering i Java
Java-programmet nedan visar implementeringen av LinkedHashMap genom att demonstrera metoderna som diskuterats ovan.
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:
Original LinkedHashMap: {en = röd, två = grön, tre = blå}
LinkedHashMap 'colours_map' tom?: Falskt
Kartans storlek: 3
Värde för nyckel = ‘en’: Röd
colours_map innehåller key = ‘two’: true
colours_map innehåller värde 'ree': false
ta bort elementet ”en”: Röd
Uppdaterad colour_map: {two = Green, three = Blue}
I det här programmet deklarerar vi en färgkarta och initialiserar den. Sedan använder vi de olika metoderna som diskuterats ovan för att få resultaten.
LinkedHashMap vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Tidskomplexiteten hos grundläggande operationer | O (1) | O (1) | O (1) |
Redskap beställde kartor. | Implementerar oordnade kartor. | ||
Använder dubbelt länkad lista med skopor. | Använder hashbord. | ||
Bibehåller ordning när elementen upprepas. | Upprätthåller inte beställningen vid iterering. | ||
Kräver mer minne. | Kräver mindre minne än LinkedHashMap. | ||
Grundläggande funktioner som att lägga till, ta bort, söka osv är långsammare. | Grundläggande funktioner som att lägga till, ta bort sökning är snabbare. |
HashMap Vs TreeMap Vs LinkedHashMap
Låt oss nu jämföra de tre kartimplementeringarna, nämligen. HashMap, TreeMap och LinkedHashMap.
Följande tabell visar jämförelsen / skillnaden.
konvertera youtube till mp4 online gratis
Jämförelse Parameter | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Gränssnitt | Karta | Karta | Karta, SortedMap, NavigableMap |
Datastruktur | Lista över hinkar | Dubbel länkad lista med hinkar | Röd-svart träd |
Iterationsorder | Ingen beställning upprätthålls. | Sorterat enligt infogningsordningen | Sorteras efter den naturliga ordningen av element |
Null Keys | Är tillåtna | Är tillåtna | Inte tillåtet |
Synkronisering | Ej synkroniserad | Ej synkroniserad | Ej synkroniserad |
Nyckelkrav | Behöver skriva över lika () och hashCode () -metoder | Behöver skriva över lika () och hashCode () -metoder | Naturlig beställning bibehålls eller jämförelse måste tillhandahållas |
Vanliga frågor
F # 1) Vad är LinkedHashMap i Java?
Svar: LinkedHashMap i Java implementeras som en kombination av HashTable och LinkedList. Det implementerar kartgränssnittet. Den har en förutsägbar iterationsordning. Den använder internt en dubbellänkad lista för poster.
F # 2)Hur fungerar LinkedHashMap i Java?
Svar: Det liknar HashMap men skiljer sig från HashMap i den ordning för insättning som LinkedHashMap upprätthåller. Elementen i LinkedHashMap lagras på samma sätt som de matas in i datastrukturen.
F # 3)Hur går jag igenom en LinkedHashMap?
Svar: Vi kan gå igenom en LinkedHashMap med hjälp av en iterator.
Följande är stegen som vi kan följa för att iterera genom LinkedHashMap med iterator:
- Skapa ett nytt LinkedHashMap-objekt.
- Använd Put API-metoden för att infoga nyckel-värdepar på kartan.
- Call entrySet () API-metod för att få en uppsättning nyckel-värdepar på kartan.
- Anropa iterator i den här uppsättningen för att hämta varje nyckel-värdepar med hjälp av getKey () och getValue () API-metoder.
F # 4)Vad är användningen av LinkedHashMap i Java?
Svar: Huvudanvändningen av LinkedHashMap i Java är att använda den för att bevara insättningsordningen. Den kan också användas för att bevara åtkomstordningen med vilken tangenterna nås. Eftersom det är snabbare än HashMap kan LinkedHashMap användas istället för HashMap där prestanda är kritisk.
F # 5)Är HashMap snabbare än LinkedHashMap?
Svar: Båda är lika i prestanda. HashMap behöver mindre minne jämfört med LinkedHashMap eftersom HashMap inte behåller åtkomstordningen. Således är HashMap relativt sett snabbare.
Slutsats
I denna handledning har vi diskuterat LinkedHashMap i Java. Vi har sett detaljerna angående klassdeklaration, klasshierarki, konstruktörer och metoder.
Vi har också lärt oss de primära skillnaderna mellan, LinkedHashMap och HashMap. Vi diskuterade också 3-vägsskillnaden mellan LinkedHashMap, HashMap och TreeMap.
I vår kommande handledning kommer vi att utforska fler ämnen om Java Collection Framework.
=> Se upp den enkla Java-träningsserien här.
Rekommenderad läsning
- Java Reflection Tutorial med exempel
- Fördjupade förmörkningsövningar för nybörjare
- Vad är en Java HashTable - HashTable Implementation & Exempel
- JAVA-handledning för nybörjare: 100+ praktiska Java-videohandledning
- Åtkomstmodifierare i Java - Handledning med exempel
- Java SWING-handledning: Container, komponenter och händelsehantering
- Java String innehåller () Metodhandledning med exempel
- Java String med String Buffer och String Builder Tutorial