linkedhashmap java linkedhashmap example implementation
Questo tutorial spiega tutto su LinkedHashMap in Java, inclusi esempi e metodi LinkedHashMap, implementazione in Java, LinkedHashMap vs HashMap:
LinkedHashMap in Java è un'implementazione che combina l'implementazione di HashTable e LinkedList. Implementa l'interfaccia Map. Le coppie chiave-valore di LinkedHashMap hanno un ordine di iterazione prevedibile.
Oltre all'interfaccia Map, LinkedHashMap estende anche la classe HashMap.
=> Visita qui per vedere la serie di formazione Java per tutti.
chi è il miglior provider di posta elettronica
Cosa imparerai:
LinkedHashMap in Java
Alcune delle caratteristiche principali di LinkedHashMap sono:
- Contiene valori basati su chiavi.
- Mantiene l'ordine di inserimento delle coppie chiave-valore.
- Non consente duplicati, ha elementi unici.
- Può avere una singola chiave nulla. Ma consente più valori null.
- Java LinkedHashMap non è sincronizzato.
Dichiarazione di LinkedHashMap
La classe LinkedHashMap in Java fa parte del pacchetto java.util.
La dichiarazione generale di questa classe in Java è la seguente:
public class LinkedHashMap extends HashMap implements MapQui K => tipo di chiavi nella mappa.
V => tipo di valori mappati alle chiavi.
La gerarchia delle classi di LinkedHashMap è mostrata di seguito:

Come mostrato nel diagramma sopra, LinkedHashMap eredita le classi HashMap e AbstractMap e implementa l'interfaccia Map.
Esempio LinkedHashMap
Di seguito è riportato un semplice esempio.
qual è il miglior convertitore mp3
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()); } } } Produzione:
Il contenuto di LinkedHashMap:
1 UNO
2 DUE
3 TRE
4 QUATTRO
5 CINQUE

Costruttori e metodi
Discutiamo i costruttori e i metodi forniti dalla classe LinkedHashMap. Innanzitutto, discuteremo i costruttori seguiti dai metodi.
Costruttori
| Prototipo del costruttore | Descrizione | |
|---|---|---|
| mazzo di chiavi | Imposta keySet () | Restituisce il set di chiavi nella mappa. |
| LinkedHashMap () | Costruttore predefinito per LinkedHashMap. | |
| LinkedHashMap (capacità interna) | Crea un oggetto LinkedHashMap con una determinata capacità. | |
| LinkedHashMap (capacità int, float loadFactor) | Crea un oggetto LinkedHashMap con capacità e loadFactor dati. | |
| LinkedHashMap (capacità int, float loadFactor, boolean accessOrder) | Crea un oggetto LinkedHashMap con una determinata capacità e loadFactor. Inoltre, viene specificata la modalità di ordinamento (accessOrder). | |
| LinkedHashMap (Mappa m) | Crea un oggetto LinkedHashMap e lo inizializza con i valori della mappa m passati come argomento. |
Metodi
| Metodo | Metodo Prototipo | Descrizione |
|---|---|---|
| ottenere | V get (Object key) | Restituisce il valore per la chiave data. |
| chiaro | void clear () | Cancella tutte le coppie chiave-valore nella mappa. |
| contieneValore | boolean containsValue (valore oggetto) | Controlla se la mappa contiene una o più chiavi mappate al valore specificato. Restituisce vero se sì. |
| entrySet | Impostato | Restituisce un insieme di voci nella mappa. |
| per ciascuno | void forEach (azione BiConsumer) | Esegue l'azione data per tutte le voci nella mappa. |
| getOrDefault | V getOrDefault (Object key, V defaultValue) | Restituisce il valore mappato alla chiave. Se non viene mappato alcun valore, viene restituito il valore predefinito. |
| removeEldestEntry | protected boolean removeEldestEntry (Map.Entry eldest) | Rimuove la voce più anziana nella mappa e restituisce true alla rimozione. |
| sostituisci tutto | void replaceAll (funzione BiFunction) | Richiama la funzione data su ogni voce e sostituisce il risultato della funzione con i valori. |
| valori | Valori di raccolta () | Restituisce la raccolta di valori nella mappa. |
Implementazione in Java
Il programma Java di seguito mostra l'implementazione di LinkedHashMap dimostrando i metodi discussi sopra.
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); } } Produzione:
LinkedHashMap originale: {uno = rosso, due = verde, tre = blu}
LinkedHashMap 'colors_map' vuoto?: False
Dimensioni della mappa: 3
Valore per chiave = 'uno': rosso
colors_map contiene key = 'two': true
colors_map contiene il valore 'ree': false
eliminare l'elemento 'uno': rosso
Mappa_colori aggiornata: {due = verde, tre = blu}

In questo programma, dichiariamo una mappa dei colori e la inizializziamo. Quindi utilizziamo i vari metodi discussi sopra per ottenere i risultati.
LinkedHashMap vs HashMap
| LinkedHashMap | HashMap | ||
|---|---|---|---|
| La complessità temporale delle operazioni di base | O (1) | O (1) | O (1) |
| Implementa mappe ordinate. | Implementa mappe non ordinate. | ||
| Utilizza un elenco di bucket doppiamente collegato. | Utilizza la tabella hash. | ||
| Mantiene l'ordine durante l'iterazione degli elementi. | Non mantiene l'ordine durante l'iterazione. | ||
| Richiede più memoria. | Richiede meno memoria di LinkedHashMap. | ||
| Le operazioni di base come l'aggiunta, la rimozione, la ricerca, ecc. Sono più lente. | Le operazioni di base come l'aggiunta e la rimozione della ricerca sono più veloci. |
HashMap Vs TreeMap Vs LinkedHashMap
Confrontiamo ora le tre implementazioni della mappa, vale a dire. HashMap, TreeMap e LinkedHashMap.
La tabella seguente mostra il confronto / differenza.
siti di condivisione file gratuiti da scaricare
| Parametro di confronto | HashMap | LinkedHashMap | TreeMap |
|---|---|---|---|
| Interfaccia | Carta geografica | Carta geografica | Mappa, SortedMap, NavigableMap |
| Struttura dati | Elenco dei secchi | Doppio elenco collegato di bucket | Albero rosso-nero |
| Ordine di iterazione | Nessun ordine mantenuto. | Ordinati in base all'ordine di inserzione | Ordinati secondo l'ordine naturale degli elementi |
| Chiavi Null | Sono ammessi | Sono ammessi | Non autorizzato |
| Sincronizzazione | Non sincronizzato | Non sincronizzato | Non sincronizzato |
| Requisiti delle chiavi | È necessario sovrascrivere i metodi equals () e hashCode () | È necessario sovrascrivere i metodi equals () e hashCode () | Viene mantenuto l'ordine naturale o è necessario fornire un comparatore |
Domande frequenti
D # 1) Cos'è LinkedHashMap in Java?
Risposta: LinkedHashMap in Java è implementato come una combinazione di HashTable e LinkedList. Implementa l'interfaccia della mappa. Ha un ordine di iterazione prevedibile. Utilizza internamente un elenco a doppio collegamento per le voci.
Q # 2)Come funziona LinkedHashMap in Java?
Risposta: È simile a HashMap ma differisce da HashMap nell'ordine di inserimento mantenuto da LinkedHashMap. Gli elementi in LinkedHashMap vengono memorizzati nello stesso modo in cui vengono inseriti nella struttura dati.
Q # 3)Come faccio a scorrere una LinkedHashMap?
Risposta: Possiamo scorrere una LinkedHashMap usando un iteratore.
Di seguito sono riportati i passaggi che possiamo seguire per iterare attraverso LinkedHashMap utilizzando l'iteratore:
- Crea un nuovo oggetto LinkedHashMap.
- Utilizza il metodo API Put per inserire coppie chiave-valore nella mappa.
- Chiama il metodo API entrySet () per ottenere una serie di coppie chiave-valore nella mappa.
- Richiama l'iteratore su questo set per recuperare ogni coppia chiave-valore utilizzando i metodi API getKey () e getValue ().
Q # 4)Qual è l'uso di LinkedHashMap in Java?
Risposta: L'utilizzo principale di LinkedHashMap in Java è utilizzarlo per preservare l'ordine di inserimento. Può anche essere utilizzato per preservare l'ordine di accesso con cui si accede alle chiavi. Poiché è più veloce di HashMap, LinkedHashMap può essere utilizzato al posto di HashMap dove le prestazioni sono critiche.
Q # 5)HashMap è più veloce di LinkedHashMap?
Risposta: Entrambi sono simili nelle prestazioni. HashMap richiede meno memoria rispetto a LinkedHashMap poiché HashMap non mantiene l'ordine di accesso. Quindi relativamente HashMap è più veloce.
Conclusione
In questo tutorial, abbiamo discusso di LinkedHashMap in Java. Abbiamo visto i dettagli riguardanti la dichiarazione di classe, la gerarchia di classi, i costruttori e i metodi.
Abbiamo anche imparato le principali differenze tra LinkedHashMap e HashMap. Abbiamo anche discusso la differenza a 3 vie tra LinkedHashMap, HashMap e TreeMap.
Nel nostro prossimo tutorial, esploreremo altri argomenti su Java Collection Framework.
=> Guarda qui la serie di formazione su Java semplice.
Lettura consigliata
- Tutorial Java Reflection con esempi
- Tutorial approfonditi su Eclipse per principianti
- Che cos'è una tabella hash Java - Implementazione ed esempio di tabella hash
- Tutorial JAVA per principianti: oltre 100 tutorial video Java pratici
- Modificatori di accesso in Java - Tutorial con esempi
- Tutorial Java SWING: contenitore, componenti e gestione degli eventi
- Tutorial sul metodo Java String contains () con esempi
- Java String con String Buffer e String Builder Tutorial