O hartă conține valori pe baza cheii, adică pereche cheie și valoare. Fiecare pereche cheie și valoare este cunoscută ca o intrare. O hartă conține chei unice.
O hartă este utilă dacă trebuie să căutați, să actualizați sau să ștergeți elemente pe baza unei chei.
Ierarhia hărților Java
Există două interfețe pentru implementarea Map în java: Map și SortedMap și trei clase: HashMap, LinkedHashMap și TreeMap. Ierarhia hărții Java este prezentată mai jos:
O hartă nu permite chei duplicate, dar puteți avea valori duplicate. HashMap și LinkedHashMap permit chei și valori nule, dar TreeMap nu permite nicio cheie sau valoare nulă.
np.concatenate
O hartă nu poate fi parcursă, așa că trebuie să o convertiți în Set folosind keySet() sau entrySet() metodă.
Clasă | Descriere |
---|---|
HashMap | HashMap este implementarea Map, dar nu menține nicio ordine. |
LinkedHashMap | LinkedHashMap este implementarea Mapului. Moștenește clasa HashMap. Menține ordinea de inserare. |
Harta copacului | TreeMap este implementarea Map și SortedMap. Menține ordinea crescătoare. |
Metode utile de interfață Map
Metodă | Descriere |
---|---|
V put(cheia obiectului, valoarea obiectului) | Este folosit pentru a introduce o intrare în hartă. |
void putAll (hartă pe hartă) | Este folosit pentru a introduce harta specificată în hartă. |
V putIfAbsent (tasta K, valoarea V) | Inserează valoarea specificată cu cheia specificată în hartă numai dacă nu este deja specificată. |
V elimina (cheia obiect) | Este folosit pentru a șterge o intrare pentru cheia specificată. |
boolean remove (cheie obiect, valoare obiect) | Îndepărtează de pe hartă valorile specificate cu cheile specificate asociate. |
Setați keySet() | Acesta returnează vizualizarea Set care conține toate cheile. |
A stabilit | Acesta returnează vizualizarea Set care conține toate cheile și valorile. |
void clear() | Este folosit pentru a reseta harta. |
Calcul V (tasta K, funcția de remapare BiFunction) | Este folosit pentru a calcula o mapare pentru cheia specificată și valoarea sa mapată curentă (sau nulă dacă nu există o mapare curentă). |
V computeIfAbsent (tasta K, Function mappingFunction) | Este folosit pentru a-și calcula valoarea utilizând funcția de mapare dată, dacă cheia specificată nu este deja asociată cu o valoare (sau este mapată la null) și o introduce în această hartă dacă nu este nulă. |
V computeIfPresent (tasta K, funcția de remapare BiFunction) | Este folosit pentru a calcula o nouă mapare având în vedere cheia și valoarea ei actuală mapată dacă valoarea pentru cheia specificată este prezentă și nu este nulă. |
boolean containsValue(Valoare obiect) | Această metodă returnează true dacă o valoare egală cu valoarea există în cadrul hărții, altfel returnează false. |
boolean containsKey (cheie obiect) | Această metodă returnează true dacă o cheie egală cu cheia există în cadrul hărții, altfel returnează false. |
boolean este egal(obiect o) | Este folosit pentru a compara obiectul specificat cu harta. |
void forEach (acțiune BiConsumer) | Efectuează acțiunea dată pentru fiecare intrare din hartă până când toate intrările au fost procesate sau acțiunea aruncă o excepție. |
V get(cheie obiect) | Această metodă returnează obiectul care conține valoarea asociată cheii. |
V getOrDefault(cheia obiectului, V defaultValue) | Returnează valoarea la care este mapată cheia specificată sau defaultValue dacă harta nu conține nicio mapare pentru cheie. |
int hashCode() | Returnează valoarea codului hash pentru Hartă |
boolean este gol () | Această metodă returnează true dacă harta este goală; returnează false dacă conține cel puțin o cheie. |
V merge (tasta K, valoarea V, funcția de remapare BiFunction) | Dacă cheia specificată nu este deja asociată cu o valoare sau este asociată cu null, o asociază cu valoarea non-nulă dată. |
V înlocuiți (tasta K, valoarea V) | Acesta înlocuiește valoarea specificată pentru o cheie specificată. |
înlocuire booleană (cheia K, V oldValue, V newValue) | Acesta înlocuiește vechea valoare cu noua valoare pentru o cheie specificată. |
void replaceAll (funcția BiFunction) | Acesta înlocuiește valoarea fiecărei intrări cu rezultatul invocării funcției date pe acea intrare până când toate intrările au fost procesate sau funcția aruncă o excepție. |
Valori de colecție() | Returnează o vizualizare de colecție a valorilor conținute în hartă. |
dimensiune int() | Această metodă returnează numărul de intrări din hartă. |
Hartă.Interfață de intrare
Entry este subinterfața Mapului. Deci, vom fi accesați prin Map.Entry name. Returnează o vizualizare-colecție a hărții, ale cărei elemente sunt din această clasă. Oferă metode pentru a obține cheia și valoarea.
note de subsol
Metode de interfață Map.Entry
Metodă | Descriere |
---|---|
K getKey() | Este folosit pentru a obține o cheie. |
V getValue() | Este folosit pentru a obține valoare. |
int hashCode() | Este folosit pentru a obține codul hash. |
V setValue (valoare V) | Este folosit pentru a înlocui valoarea corespunzătoare acestei intrări cu valoarea specificată. |
boolean este egal(obiect o) | Este folosit pentru a compara obiectul specificat cu celelalte obiecte existente. |
static | Returnează un comparator care compară obiectele în ordine naturală pe cheie. |
Comparator static | Returnează un comparator care compară obiectele după cheie folosind Comparatorul dat. |
static | Returnează un comparator care compară obiectele în ordine naturală asupra valorii. |
Comparator static | Returnează un comparator care compară obiectele după valoare folosind Comparatorul dat. |
Exemplu de hartă Java: non-generic (stil vechi)
//Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } }
Ieșire:
1 Amit 2 Jai 5 Rahul 6 Amit
Exemplu de hartă Java: generic (stil nou)
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Ieșire:
102 Rahul 100 Amit 101 Vijay
Exemplu de hartă Java: comparingByKey()
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Ieșire:
bara de instrumente cu acces rapid ms Word
100=Amit 101=Vijay 102=Rahul
Exemplu de hartă Java: comparingByKey() în ordine descrescătoare
import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Ieșire:
102=Rahul 101=Vijay 100=Amit
Exemplu de hartă Java: comparingByValue()
import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Ieșire:
100=Amit 102=Rahul 101=Vijay
Exemplu de hartă Java: comparingByValue() în ordine descrescătoare
import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Ieșire:
101=Vijay 102=Rahul 100=Amit