linkedhashmap java linkedhashmap example implementation
Deze tutorial legt alles uit over LinkedHashMap in Java, inclusief LinkedHashMap-voorbeeld en -methoden, implementatie in Java, LinkedHashMap versus HashMap:
LinkedHashMap in Java is een implementatie die de implementatie van HashTable en LinkedList combineert. Het implementeert de kaartinterface. De sleutel-waardeparen van LinkedHashMap hebben een voorspelbare volgorde van iteratie.
Naast de kaartinterface breidt LinkedHashMap ook de klasse HashMap uit.
Bezoek hier om de Java-trainingsserie voor iedereen te zien.
hoe de inhoud van array java wordt afgedrukt
Wat je leert:
- LinkedHashMap in Java
- LinkedHashMap versus HashMap
- HashMap Vs TreeMap Vs LinkedHashMap
- Gevolgtrekking
LinkedHashMap in Java
Enkele van de belangrijkste kenmerken van LinkedHashMap zijn:
- Het bevat op sleutels gebaseerde waarden.
- Handhaaft de volgorde van het invoegen van sleutel / waarde-paren.
- Het staat geen duplicaten toe, het heeft unieke elementen.
- Het kan een enkele null-sleutel hebben. Maar het staat meerdere null-waarden toe.
- Java LinkedHashMap is niet gesynchroniseerd.
Verklaring van LinkedHashMap
De klasse LinkedHashMap in Java is een onderdeel van het pakket java.util.
De algemene verklaring van deze klasse in Java is als volgt:
Hier K => type sleutels in de kaart.
V => type waarden toegewezen aan sleutels.
De klassenhiërarchie van LinkedHashMap wordt hieronder weergegeven:
Zoals getoond in het bovenstaande diagram, erft LinkedHashMap de klasse HashMap en AbstractMap en implementeert het de kaartinterface.
wat is mijn gebruikersnaam en wachtwoord voor mijn router
LinkedHashMap-voorbeeld
Hieronder is een eenvoudig voorbeeld gegeven.
Uitgang:
De inhoud van LinkedHashMap:
1 EEN
2 TWEE
3 DRIE
4 VIER
5 VIJF
Constructeurs en methoden
Laten we de constructors en methoden bespreken die door de klasse LinkedHashMap worden geboden. Eerst bespreken we de constructors, gevolgd door methoden.
Constructeurs
Constructor-prototype | Omschrijving | |
---|---|---|
sleutelbos | Set keySet () | Retourneert een set sleutels in de kaart. |
LinkedHashMap () | Standaardconstructor voor LinkedHashMap. | |
LinkedHashMap (int capaciteit) | Maakt een LinkedHashMap-object met een bepaalde capaciteit. | |
LinkedHashMap (int capaciteit, float loadFactor) | Maakt een LinkedHashMap-object met de opgegeven capaciteit en loadFactor. | |
LinkedHashMap (int capacity, float loadFactor, boolean accessOrder) | Maakt een LinkedHashMap-object met een bepaalde capaciteit en loadFactor. Ook wordt de bestelmodus (accessOrder) gespecificeerd. | |
LinkedHashMap (Kaart m) | Maakt een LinkedHashMap-object en initialiseert het met de waarden van de m die als argument zijn doorgegeven. |
Methoden
Methode | Methode Prototype | Omschrijving |
---|---|---|
krijgen | V get (Objectsleutel) | Retourneert de waarde voor de opgegeven sleutel. |
Doorzichtig | leegte duidelijk () | Wist alle sleutel / waarde-paren op de kaart. |
bevatValue | boolean containsValue (waarde van het object) | Controleert of de kaart een of meer sleutels bevat die zijn toegewezen aan de opgegeven waarde. Retourneert true indien ja. |
entrySet | Set | Retourneert een set items op de kaart. |
voor elk | void forEach (BiConsumer-actie) | Voert de gegeven actie uit voor alle items op de kaart. |
getOrDefault | V getOrDefault (Objectsleutel, V defaultValue) | Retourneert de waarde die aan de sleutel is toegewezen. Als er geen waarde is toegewezen, wordt standaard geretourneerd. |
removeEldestEntry | beschermde boolean removeEldestEntry (Map.Entry oudste) | Verwijdert het oudste item op de kaart en geeft true terug bij verwijdering. |
vervang alles | void replaceAll (BiFunction-functie) | Roept de gegeven functie op bij elk item en vervangt het resultaat van de functie door de waarden. |
waarden | Verzamelingswaarden () | Retourneert de verzameling waarden op de kaart. |
Implementatie in Java
Het onderstaande Java-programma toont de implementatie van LinkedHashMap door de hierboven besproken methoden te demonstreren.
Uitgang:
Originele LinkedHashMap: {een = rood, twee = groen, drie = blauw}
LinkedHashMap ‘colours_map’ leeg?: False
Grootte van de kaart: 3
Waarde voor sleutel = ‘één’: rood
colors_map bevat key = ‘two’: true
colors_map bevat waarde ‘ree’: false
verwijder element ‘één’: rood
Bijgewerkte kleurenkaart: {twee = groen, drie = blauw}
In dit programma declareren we een kleurenkaart en initialiseren deze. Vervolgens gebruiken we de verschillende hierboven besproken methoden om de resultaten te krijgen.
LinkedHashMap versus HashMap
LinkedHashMap | Hash kaart | ||
---|---|---|---|
De tijdcomplexiteit van basishandelingen | O (1) | O (1) | O (1) |
Werkt met bestelde kaarten. | Implementeert ongeordende kaarten. | ||
Gebruikt een dubbel gelinkte lijst met buckets. | Maakt gebruik van hashtabel. | ||
Behoudt de orde bij het herhalen van de elementen. | Handhaaft de volgorde niet tijdens het itereren. | ||
Vereist meer geheugen. | Vereist minder geheugen dan LinkedHashMap. | ||
Basisbewerkingen zoals toevoegen, verwijderen, zoeken, enz. Zijn langzamer. | Basisbewerkingen zoals toevoegen en verwijderen van zoekacties gaan sneller. |
HashMap Vs TreeMap Vs LinkedHashMap
Laten we nu de drie kaartimplementaties vergelijken, namelijk. HashMap, TreeMap en LinkedHashMap.
De volgende tabel toont de vergelijking / het verschil.
Vergelijkingsparameter | Hash kaart | LinkedHashMap | TreeMap |
---|---|---|---|
Koppel | Kaart | Kaart | Kaart, SortedMap, NavigableMap |
Data structuur | Lijst met emmers | Dubbele gekoppelde lijst met buckets | Rood-zwarte boom |
Herhalingsopdracht | Geen volgorde behouden. | Gesorteerd volgens invoegopdracht | Gesorteerd volgens de natuurlijke ordening van elementen |
Null-sleutels | Zijn toegestaan | Zijn toegestaan | Niet toegestaan |
Synchronisatie | Niet gesynchroniseerd | Niet gesynchroniseerd | Niet gesynchroniseerd |
Sleutelvereiste | Noodzaak om equals () en hashCode () methoden te overschrijven | Noodzaak om equals () en hashCode () methoden te overschrijven | De natuurlijke volgorde wordt gehandhaafd of er moet een comparator worden geleverd |
Veel Gestelde Vragen
V # 1) Wat is LinkedHashMap in Java?
Antwoord: LinkedHashMap in Java wordt geïmplementeerd als een combinatie van de HashTable en LinkedList. Het implementeert de kaartinterface. Het heeft een voorspelbare iteratievolgorde. Het gebruikt intern een dubbel gekoppelde lijst voor inzendingen.
Q # 2)Hoe werkt LinkedHashMap in Java?
Antwoord: Het is vergelijkbaar met HashMap maar verschilt van HashMap in de volgorde van invoeging die LinkedHashMap handhaaft. De elementen in de LinkedHashMap worden op dezelfde manier opgeslagen als ze zijn ingevoerd in de datastructuur.
Q # 3)Hoe loop ik door een LinkedHashMap?
Antwoord: We kunnen een LinkedHashMap doorlopen met behulp van een iterator.
Hieronder volgen de stappen die we kunnen volgen om door de LinkedHashMap te herhalen met behulp van iterator:
- Maak een nieuw LinkedHashMap-object.
- Gebruik de Put API-methode om sleutel-waardeparen in de kaart in te voegen.
- Roep entrySet () API-methode aan om een set sleutel-waardeparen in de kaart te verkrijgen.
- Roep iterator op deze set aan om elk sleutel / waarde-paar op te halen met behulp van de API-methoden getKey () en getValue ().
Q # 4)Wat is het gebruik van LinkedHashMap in Java?
Antwoord: Het belangrijkste gebruik van LinkedHashMap in Java is om het te gebruiken voor het behouden van de invoegvolgorde. Het kan ook worden gebruikt om de toegangsvolgorde te bewaren waarmee de sleutels worden benaderd. Omdat het sneller is dan HashMap, kan LinkedHashMap worden gebruikt in plaats van HashMap waar de prestaties van cruciaal belang zijn.
Q # 5)Is HashMap sneller dan LinkedHashMap?
Antwoord: Beide zijn vergelijkbaar qua prestaties. HashMap heeft minder geheugen nodig in vergelijking met LinkedHashMap omdat HashMap de toegangsvolgorde niet behoudt. Dus relatief HashMap is sneller.
Gevolgtrekking
In deze tutorial hebben we de LinkedHashMap in Java besproken. We hebben de details gezien met betrekking tot klassendeclaratie, klassehiërarchie, constructors en methoden.
We hebben ook de belangrijkste verschillen geleerd tussen LinkedHashMap en HashMap. We bespraken ook het verschil in drie richtingen tussen LinkedHashMap, HashMap en TreeMap.
In onze aanstaande tutorial zullen we meer onderwerpen over Java Collection Framework onderzoeken.
interviewvragen en antwoord voor bedrijfsanalisten
Bekijk hier de eenvoudige Java-trainingsserie.
Aanbevolen literatuur
- Zelfstudie over reflectie in Java met voorbeelden
- Diepgaande Eclipse-zelfstudies voor beginners
- Wat is een Java HashTable - HashTable-implementatie en -voorbeeld
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Toegang tot modificatoren in Java - zelfstudie met voorbeelden
- Java SWING-zelfstudie: afhandeling van containers, componenten en gebeurtenissen
- Java String bevat () Method Tutorial met voorbeelden
- Java String met String Buffer en String Builder Tutorial