Mapa sadrži vrijednosti na temelju ključa, tj. para ključ i vrijednost. Svaki par ključeva i vrijednosti poznat je kao unos. Karta sadrži jedinstvene ključeve.
Karta je korisna ako morate pretraživati, ažurirati ili brisati elemente na temelju ključa.
Hijerarhija Java karte
Postoje dva sučelja za implementaciju Map u Javi: Map i SortedMap, i tri klase: HashMap, LinkedHashMap i TreeMap. Hijerarhija Java Mape data je u nastavku:
Karta ne dopušta duplicirane ključeve, ali možete imati duplicirane vrijednosti. HashMap i LinkedHashMap dopuštaju null ključeve i vrijednosti, ali TreeMap ne dopušta nijedan null ključ ili vrijednost.
Kartom se ne može prijeći, pa je morate pretvoriti u Set pomoću KeySet() ili unosSet() metoda.
Klasa | Opis |
---|---|
HashMap | HashMap je implementacija Mape, ali ne održava nikakav red. |
LinkedHashMap | LinkedHashMap je implementacija Mape. Nasljeđuje klasu HashMap. Održava redoslijed umetanja. |
TreeMap | TreeMap je implementacija Map i SortedMap. Održava uzlazni poredak. |
Korisne metode sučelja karte
metoda | Opis |
---|---|
V put(ključ objekta, vrijednost objekta) | Koristi se za umetanje unosa u kartu. |
void putAll(Map map) | Koristi se za umetanje navedene karte u kartu. |
V putIfAbsent(ključ K, vrijednost V) | Umeće navedenu vrijednost s navedenim ključem u mapu samo ako već nije navedena. |
V ukloniti (ključ objekta) | Koristi se za brisanje unosa za navedeni ključ. |
boolean remove(ključ objekta, vrijednost objekta) | Uklanja navedene vrijednosti s pridruženim navedenim ključevima s karte. |
Postavi keySet() | Vraća pogled Set koji sadrži sve ključeve. |
Set | Vraća pogled Set koji sadrži sve ključeve i vrijednosti. |
praznina jasno() | Koristi se za resetiranje karte. |
V compute (tipka K, BiFunction remappingFunction) | Koristi se za izračunavanje preslikavanja za navedeni ključ i njegove trenutne preslikane vrijednosti (ili null ako trenutno ne postoji preslikavanje). |
V computeIfAbsent(tipka K, funkcija mapiranja funkcije) | Koristi se za izračunavanje svoje vrijednosti pomoću zadane funkcije mapiranja, ako navedeni ključ već nije povezan s vrijednošću (ili je preslikan na null), i unosi ga u ovu mapu osim ako nije null. |
V computeIfPresent(tipka K, BiFunction remappingFunction) | Koristi se za izračunavanje novog preslikavanja s obzirom na ključ i njegovu trenutnu mapiranu vrijednost ako je vrijednost za navedeni ključ prisutna i nije nula. |
boolean containsValue(vrijednost objekta) | Ova metoda vraća true ako neka vrijednost jednaka vrijednosti postoji unutar mape, inače vraća false. |
boolean containsKey(ključ objekta) | Ova metoda vraća true ako neki ključ jednak ključu postoji unutar mape, inače vraća false. |
Boolean jednako (objekt o) | Koristi se za usporedbu navedenog Objekta s Kartom. |
void forEach(radnja BiConsumer) | Izvodi zadanu radnju za svaki unos u mapi sve dok se svi unosi ne obrade ili dok akcija ne izbaci iznimku. |
V get (ključ objekta) | Ova metoda vraća objekt koji sadrži vrijednost povezanu s ključem. |
V getOrDefault(ključ objekta, V defaultValue) | Vraća vrijednost u koju je preslikan navedeni ključ ili defaultValue ako mapa ne sadrži preslikavanje za ključ. |
int hashCode() | Vraća vrijednost hash koda za kartu |
Boolean isEmpty() | Ova metoda vraća true ako je karta prazna; vraća false ako sadrži barem jedan ključ. |
V spajanje (K ključ, V vrijednost, BiFunction remappingFunction) | Ako navedeni ključ već nije povezan s vrijednošću ili je povezan s null, pridružuje ga danoj vrijednosti koja nije null. |
V zamjena (K ključ, V vrijednost) | Zamjenjuje navedenu vrijednost za određeni ključ. |
boolean zamjena (ključ K, V stara vrijednost, V nova vrijednost) | Zamjenjuje staru vrijednost novom vrijednošću za određeni ključ. |
void replaceAll (funkcija BiFunction) | Zamjenjuje vrijednost svakog unosa rezultatom pozivanja dane funkcije na tom unosu dok se svi unosi ne obrade ili funkcija ne izbaci iznimku. |
Vrijednosti zbirke() | Vraća prikaz zbirke vrijednosti sadržanih u karti. |
int size() | Ova metoda vraća broj unosa na karti. |
Map.Entry sučelje
Entry je podsučelje karte. Tako da će nam se pristupiti pomoću naziva Map.Entry. Vraća prikaz zbirke karte, čiji su elementi ove klase. Pruža metode za dobivanje ključa i vrijednosti.
Metode sučelja Map.Entry
metoda | Opis |
---|---|
K getKey() | Koristi se za dobivanje ključa. |
V getValue() | Koristi se za dobivanje vrijednosti. |
int hashCode() | Koristi se za dobivanje hashCode-a. |
V setValue(V vrijednost) | Koristi se za zamjenu vrijednosti koja odgovara ovom unosu navedenom vrijednošću. |
Boolean jednako (objekt o) | Koristi se za usporedbu navedenog objekta s drugim postojećim objektima. |
statički | Vraća komparator koji uspoređuje objekte prirodnim redoslijedom na ključu. |
statički komparator | Vraća komparator koji uspoređuje objekte po ključu koristeći dani komparator. |
statički | Vraća komparator koji uspoređuje objekte prirodnim redoslijedom po vrijednosti. |
statički komparator | Vraća komparator koji uspoređuje objekte po vrijednosti pomoću zadanog komparatora. |
Primjer Java karte: negenerički (stari stil)
//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()); } } }
Izlaz:
1 Amit 2 Jai 5 Rahul 6 Amit
Primjer Java mape: Generički (novi stil)
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()); } } }
Izlaz:
102 Rahul 100 Amit 101 Vijay
Primjer Java mape: 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); } }
Izlaz:
100=Amit 101=Vijay 102=Rahul
Primjer Java karte: uspoređivanjeByKey() u silaznom redoslijedu
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); } }
Izlaz:
102=Rahul 101=Vijay 100=Amit
Primjer Java karte: uspoređivanjePoVrijednosti()
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); } }
Izlaz:
100=Amit 102=Rahul 101=Vijay
Primjer Java mape: uspoređivanjeByValue() u silaznom redoslijedu
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); } }
Izlaz:
101=Vijay 102=Rahul 100=Amit