linkedhashmap java linkedhashmap example implementation
Aquest tutorial explica tot sobre LinkedHashMap a Java, inclosos els mètodes i exemples de LinkedHashMap, implementació a Java, LinkedHashMap contra HashMap:
LinkedHashMap a Java és una implementació que combina la implementació de HashTable i LinkedList. Implementa la interfície Map. Els parells clau-valor de LinkedHashMap tenen un ordre d’iteració previsible.
A més de la interfície Map, LinkedHashMap també amplia la classe HashMap.
=> Visiteu aquí per veure la sèrie de formació de Java per a tothom
com es corregeix la passarel·la predeterminada no disponible Windows 10
Què aprendreu:
LinkedHashMap A Java
Algunes de les principals característiques de LinkedHashMap són:
- Conté valors basats en claus.
- Manté l'ordre d'inserció de parells clau-valor.
- No permet duplicats, té elements únics.
- Pot tenir una única clau nul·la. Però permet múltiples valors nuls.
- Java LinkedHashMap no està sincronitzat.
Declaració de LinkedHashMap
La classe LinkedHashMap de Java forma part del paquet java.util.
La declaració general d'aquesta classe a Java és la següent:
public class LinkedHashMap extends HashMap implements Map
Aquí K => tipus de tecles al mapa.
V => tipus de valors assignats a claus.
A continuació es mostra la jerarquia de classes de LinkedHashMap:
Com es mostra al diagrama anterior, LinkedHashMap hereta la classe HashMap i AbstractMap i implementa la interfície Map.
Exemple LinkedHashMap
A continuació es mostra un exemple senzill.
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()); } } }
Sortida:
com obrir un fitxer eps a Windows 10
El contingut de LinkedHashMap:
1 UN
2 DOS
3 TRES
4 QUATRE
5 CINC
Constructors i mètodes
Analitzem els constructors i els mètodes proporcionats per la classe LinkedHashMap. En primer lloc, parlarem dels constructors seguits dels mètodes.
Constructors
Prototip de constructor | Descripció | |
---|---|---|
keySet | Estableix keySet () | Retorna el conjunt de tecles del mapa. |
LinkedHashMap () | Constructor per defecte per LinkedHashMap. | |
LinkedHashMap (capacitat int) | Crea un objecte LinkedHashMap amb una capacitat determinada. | |
LinkedHashMap (capacitat int, factor de càrrega flotant) | Crea un objecte LinkedHashMap amb capacitat i loadFactor donats. | |
LinkedHashMap (capacitat int, Factor de càrrega flotant, Ordre d'accés booleà) | Crea un objecte LinkedHashMap amb una capacitat i un loadFactor determinats. A més, s’especifica el mode de comanda (accessOrder). | |
LinkedHashMap (Mapa m) | Crea un objecte LinkedHashMap i l'inicialitza amb els valors del mapa m passat com a argument. |
Mètodes
Mètode | Mètode prototip | Descripció |
---|---|---|
aconseguir | V get (clau d'objecte) | Retorna el valor de la clau donada. |
clar | void clear () | Esborra tots els parells valor-clau del mapa. |
contéValor | booleà contéValor (valor de l'objecte) | Comprova si el mapa conté una o més claus assignades al valor indicat. Retorna cert si és afirmatiu. |
entrySet | Conjunt | Retorna el conjunt d'entrades al mapa. |
per cadascú | void forEach (acció BiConsumer) | Executa l'acció donada per a totes les entrades del mapa. |
getOrDefault | V getOrDefault (clau d'objecte, V defaultValue) | Retorna el valor assignat a la clau. Si no s’assigna cap valor, es torna el valor per defecte. |
removeEldestEntry | booleà protegit removeEldestEntry (Map.Entry major) | Elimina l'entrada més antiga del mapa i torna a ser vertader en eliminar-la. |
substituirTots | void replaceAll (funció BiFunction) | Invoca la funció donada a cada entrada i substitueix el resultat de la funció pels valors. |
valors | Valors de col·lecció () | Retorna la col·lecció de valors del mapa. |
Implementació a Java
El programa Java següent mostra la implementació de LinkedHashMap demostrant els mètodes comentats anteriorment.
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); } }
Sortida:
LinkedHashMap original: {un = vermell, dos = verd, tres = blau}
LinkedHashMap 'colors_map' buit?: Fals
Mida del mapa: 3
Valor de la clau = 'un': vermell
colors_map conté key = 'two': true
colors_map conté el valor ‘ree’: fals
esborra l’element ‘one’: vermell
Mapa de colors actualitzat: {dos = verd, tres = blau}
En aquest programa, declarem un mapa de colors i el inicialitzem. A continuació, fem servir els diversos mètodes comentats anteriorment per obtenir els resultats.
LinkedHashMap Vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
La complexitat temporal de les operacions bàsiques | O (1) | O (1) | O (1) |
Implementa mapes ordenats. | Implementa mapes no ordenats. | ||
Utilitza una llista de dipòsits doblement enllaçada. | Utilitza la taula de hash. | ||
Manté l'ordre en iterar els elements. | No manté l'ordre en iterar. | ||
Requereix més memòria. | Requereix menys memòria que LinkedHashMap. | ||
Les operacions bàsiques com afegir, eliminar, buscar, etc. són més lentes. | Les operacions bàsiques com afegir i eliminar cerques són més ràpides. |
HashMap Vs TreeMap Vs LinkedHashMap
Comparem ara les tres implementacions de mapes. HashMap, TreeMap i LinkedHashMap.
La taula següent mostra la comparació / diferència.
Paràmetre de comparació | HashMap | LinkedHashMap | Mapa d’arbres |
---|---|---|---|
Interfície | Mapa | Mapa | Mapa, SortedMap, NavigableMap |
Estructura de dades | Llista de galledes | Doble llista enllaçada de cubs | Arbre vermell-negre |
Ordre d’iteració | No es manté cap comanda. | Ordenat segons l'ordre d'inserció | Ordenats segons l’ordenació natural dels elements |
Claus nul·les | Són permesos | Són permesos | No permès |
Sincronització | No sincronitzat | No sincronitzat | No sincronitzat |
Requisit de claus | Cal sobreescriure els mètodes equals () i hashCode () | Cal sobreescriure els mètodes equals () i hashCode () | Es manté l’ordre natural o s’ha de subministrar un comparador |
Preguntes freqüents
P # 1) Què és LinkedHashMap a Java?
Preguntes i respostes d'entrevistes sql per a pdf amb experiència
Resposta: LinkedHashMap a Java s’implementa com una combinació de HashTable i LinkedList. Implementa la interfície del mapa. Té un ordre d'iteració previsible. Utilitza internament una llista doblement enllaçada per a les entrades.
Q # 2)Com funciona LinkedHashMap a Java?
Resposta: És similar a HashMap però difereix de HashMap per l’ordre d’inserció que manté LinkedHashMap. Els elements del LinkedHashMap s’emmagatzemen de la mateixa manera que s’introdueixen a l’estructura de dades.
Q # 3)Com puc fer un bucle a través d'un LinkedHashMap?
Resposta: Podem recórrer un LinkedHashMap mitjançant un iterador.
A continuació es detallen els passos que podem seguir per iterar mitjançant LinkedHashMap mitjançant l'iterador:
- Creeu un nou objecte LinkedHashMap.
- Utilitzeu el mètode Put API per inserir parells clau-valor al mapa.
- Truqueu al mètode API entrySet () per obtenir un conjunt de parells clau-valor al mapa.
- Invoca l'iterador en aquest conjunt per recuperar cada parell clau-valor mitjançant els mètodes API getKey () i getValue ().
Q # 4)Quin ús té LinkedHashMap a Java?
Resposta: L’ús principal de LinkedHashMap a Java és utilitzar-lo per preservar l’ordre d’inserció. També es pot utilitzar per conservar l'ordre d'accés mitjançant el qual s'accedeix a les claus. Com que és més ràpid que HashMap, LinkedHashMap es pot utilitzar en lloc de HashMap, on el rendiment és fonamental.
Q # 5)És HashMap més ràpid que LinkedHashMap?
Resposta: Tots dos tenen un rendiment similar. HashMap necessita menys memòria en comparació amb LinkedHashMap, ja que HashMap no manté l’ordre d’accés. Així, comparativament, HashMap és més ràpid.
Conclusió
En aquest tutorial, hem parlat del LinkedHashMap a Java. Hem vist els detalls sobre la declaració de classes, la jerarquia de classes, els constructors i els mètodes.
També hem après les diferències principals entre LinkedHashMap i HashMap. També vam discutir la diferència de tres vies entre LinkedHashMap, HashMap i TreeMap.
Al nostre proper tutorial, explorarem més temes sobre Java Collection Framework.
=> Mireu aquí les sèries de formació Java senzilles.
Lectura recomanada
- Tutorial de reflexió de Java amb exemples
- Tutorials Eclipse en profunditat per a principiants
- Què és un Java HashTable: implementació i exemple de HashTable
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- Modificadors d'accés a Java: tutorial amb exemples
- Tutorial Java SWING: Gestió de contenidors, components i esdeveniments
- Java String conté () Tutorial de mètode amb exemples
- Java String amb buffer de cadenes i tutorial de Generador de cadenes