linkedhashmap java linkedhashmap example implementation
Acest tutorial explică totul despre LinkedHashMap în Java, inclusiv exemple și metode LinkedHashMap, implementarea în Java, LinkedHashMap vs HashMap:
LinkedHashMap în Java este o implementare care combină implementarea HashTable și LinkedList. Implementează interfața Map. Perechile cheie-valoare ale LinkedHashMap au o ordine previzibilă de iterație.
Pe lângă interfața Map, LinkedHashMap extinde și clasa HashMap.
=> Vizitați aici pentru a vedea seria de antrenament Java pentru toți.
cum se creează un e-mail de companie fals
Ce veți învăța:
LinkedHashMap În Java
Unele dintre principalele caracteristici ale LinkedHashMap sunt:
- Conține valori bazate pe cheie.
- Menține ordinea inserării perechilor cheie-valoare.
- Nu permite duplicate, are elemente unice.
- Poate avea o singură cheie nulă. Dar permite mai multe valori nule.
- Java LinkedHashMap nu este sincronizat.
Declarația LinkedHashMap
Clasa LinkedHashMap din Java face parte din pachetul java.util.
Declarația generală a acestei clase în Java este următoarea:
public class LinkedHashMap extends HashMap implements Map
Aici K => tipul de taste din hartă.
V => tipul de valori mapate la chei.
Ierarhia de clase a LinkedHashMap este prezentată mai jos:
După cum se arată în diagrama de mai sus, LinkedHashMap moștenește clasa HashMap și AbstractMap și implementează interfața Map.
Exemplu LinkedHashMap
Dat mai jos este un exemplu simplu.
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()); } } }
Ieșire:
Conținutul LinkedHashMap:
1 UNU
2 DOUĂ
3 TREI
4 PATRU
5 CINCI
Constructori și metode
Să discutăm despre constructorii și metodele furnizate de clasa LinkedHashMap. În primul rând, vom discuta despre constructorii urmați de metode.
Constructori
Prototipul constructorului | Descriere | |
---|---|---|
keySet | Set keySet () | Returnează setul de taste din hartă. |
LinkedHashMap () | Constructor implicit pentru LinkedHashMap. | |
LinkedHashMap (capacitate int) | Creează un obiect LinkedHashMap cu o capacitate dată. | |
LinkedHashMap (capacitate int, float loadFactor) | Creează un obiect LinkedHashMap cu capacitate și loadFactor date. | |
LinkedHashMap (capacitate int, float loadFactor, access booleanOrder) | Creează un obiect LinkedHashMap cu o capacitate și loadFactor date. De asemenea, este specificat modul de comandă (accessOrder). | |
LinkedHashMap (Harta m) | Creează un obiect LinkedHashMap și îl inițializează cu valorile din harta m trecută ca argument. |
Metode
Metodă | Metoda prototip | Descriere |
---|---|---|
obține | V get (cheia obiectului) | Returnează valoarea pentru cheia dată. |
clar | gol clar () | Șterge toate perechile cheie-valoare din hartă. |
conține Valoare | boolean conține Valoare (valoarea obiectului) | Verifică dacă harta conține una sau mai multe chei mapate la valoarea dată. Returnează adevărat dacă da. |
entrySet | A stabilit | Returnează setul de intrări pe hartă. |
pentru fiecare | nul pentru fiecare (acțiune BiConsumer) | Execută acțiunea dată pentru toate intrările de pe hartă. |
getOrDefault | V getOrDefault (cheie obiect, V defaultValue) | Returnează valoarea mapată la cheie. Dacă nu este mapată nicio valoare, se returnează valoarea implicită. |
removeEldestEntry | boolean protejat removeEldestEntry (Map.Entry cel mai mare) | Elimină intrarea cea mai veche din hartă și returnează adevărat la eliminare. |
înlocuiește-le pe toate | void replaceAll (funcția BiFunction) | Invocă funcția dată la fiecare intrare și înlocuiește rezultatul funcției cu valorile. |
valori | Valorile colecției () | Returnează colecția de valori din hartă. |
Implementare în Java
Programul Java de mai jos prezintă implementarea LinkedHashMap prin demonstrarea metodelor discutate mai sus.
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); } }
Ieșire:
LinkedHashMap original: {one = Red, two = Green, three = Blue}
LinkedHashMap „colors_map” gol?: Fals
Dimensiunea hărții: 3
Valoare pentru cheie = „una”: roșu
colors_map conține cheia = ‘doi’: adevărat
colors_map conține valoarea „ree”: fals
ștergeți elementul „unu”: roșu
Harta de culori actualizată: {două = verde, trei = albastru}
În acest program, declarăm o hartă color și o inițializăm. Apoi folosim diferitele metode discutate mai sus pentru a obține rezultate.
LinkedHashMap Vs HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Complexitatea în timp a operațiilor de bază | O (1) | O (1) | O (1) |
Implementează hărți comandate. | Implementează hărți neordonate. | ||
Utilizează o listă de găleți dublu legată. | Utilizează tabelul hash. | ||
Menține ordinea atunci când iterați elementele. | Nu menține ordinea la iterație. | ||
Necesită mai multă memorie. | Necesită mai puțină memorie decât LinkedHashMap. | ||
Operațiunile de bază precum adăugarea, eliminarea, căutarea etc. sunt mai lente. | Operațiunile de bază cum ar fi adăugarea, eliminarea căutării sunt mai rapide. |
HashMap Vs TreeMap Vs LinkedHashMap
Să comparăm acum cele trei implementări ale hărții și anume. HashMap, TreeMap și LinkedHashMap.
Structura de date a graficului c ++
Tabelul următor arată comparația / diferența.
Parametru de comparație | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Interfață | Hartă | Hartă | Hartă, SortedMap, NavigableMap |
Structură de date | Lista găleților | Listă dublă legată de găleți | Copac roșu-negru |
Ordinul de iterație | Nicio comandă menținută. | Sortate conform ordinului de inserare | Sortate în funcție de ordonarea naturală a elementelor |
Taste nule | Sunt permise | Sunt permise | Nepermis |
Sincronizare | Nu este sincronizat | Nu este sincronizat | Nu este sincronizat |
Cerința cheilor | Trebuie să suprascrieți metode equals () și hashCode () | Trebuie să suprascrieți metode equals () și hashCode () | Comenzile naturale sunt menținute sau trebuie furnizat un comparator |
întrebări frecvente
Q # 1) Ce este LinkedHashMap în Java?
Răspuns: LinkedHashMap în Java este implementat ca o combinație a HashTable și LinkedList. Implementează interfața hărții. Are o ordine de iterație previzibilă. Utilizează intern o listă dublă legată pentru intrări.
Q # 2)Cum funcționează LinkedHashMap în Java?
Răspuns: Este similar cu HashMap, dar diferă de HashMap în ordinea de inserare pe care o menține LinkedHashMap. Elementele din LinkedHashMap sunt stocate în același mod în care sunt introduse în structura de date.
Q # 3)Cum fac o buclă printr-un LinkedHashMap?
Răspuns: Putem parcurge un LinkedHashMap folosind un iterator.
Urmează pașii pe care îi putem urma pentru a itera prin LinkedHashMap folosind iteratorul:
- Creați un nou obiect LinkedHashMap.
- Utilizați metoda Put API pentru a insera perechi cheie-valoare în hartă.
- Apelați metoda API entrySet () pentru a obține un set de perechi cheie-valoare în hartă.
- Invocați iteratorul pe acest set pentru a extrage fiecare pereche cheie-valoare folosind metodele getKey () și getValue () API.
Q # 4)La ce folosește LinkedHashMap în Java?
Răspuns: Principala utilizare a LinkedHashMap în Java este folosirea acestuia pentru păstrarea ordinii de inserare. Poate fi, de asemenea, utilizat pentru a păstra ordinea de acces cu ajutorul căreia se accesează cheile. Deoarece este mai rapid decât HashMap, LinkedHashMap poate fi utilizat în locul lui HashMap, unde performanța este critică.
Q # 5)HashMap este mai rapid decât LinkedHashMap?
Răspuns: Ambele sunt similare ca performanță. HashMap are nevoie de mai puțină memorie în comparație cu LinkedHashMap, deoarece HashMap nu menține ordinea de acces. Astfel HashMap comparativ este mai rapid.
Concluzie
În acest tutorial, am discutat LinkedHashMap în Java. Am văzut detaliile referitoare la declarația clasei, ierarhia clasei, constructorii și metodele.
recenzii gratuite despre convertor de la YouTube la mp3
De asemenea, am învățat diferențele primare dintre LinkedHashMap și HashMap. De asemenea, am discutat despre diferența de 3 căi între LinkedHashMap, HashMap și TreeMap.
În viitorul nostru tutorial, vom explora mai multe subiecte despre Java Collection Framework.
=> Urmăriți aici seria de antrenament Java simplă.
Lectură recomandată
- Tutorial de reflecție Java cu exemple
- Tutoriale detaliate pentru eclipsă pentru începători
- Ce este un Java HashTable - Implementare și exemplu HashTable
- Tutorial JAVA pentru începători: peste 100 de tutoriale video Java practice
- Modificatori de acces în Java - Tutorial cu exemple
- Tutorial Java SWING: Container, componente și gestionarea evenimentelor
- Șirul Java conține () Tutorial metodă cu exemple
- Java String cu buffer de șiruri și tutorial pentru generatorul de șiruri