A térkép kulcsok, azaz kulcs és értékpár alapján tartalmaz értékeket. Minden kulcs és érték pár bejegyzésként ismert. A térkép egyedi kulcsokat tartalmaz.
A térkép akkor hasznos, ha kulcs alapján kell elemeket keresni, frissíteni vagy törölni.
Java térképhierarchia
A Map Java-ban való megvalósításához két interfész létezik: Map és SortedMap, valamint három osztály: HashMap, LinkedHashMap és TreeMap. A Java Map hierarchiája az alábbiakban látható:
A térkép nem engedélyezi a duplikált kulcsokat, de lehetnek ismétlődő értékek. A HashMap és a LinkedHashMap engedélyezi a null kulcsokat és értékeket, de a TreeMap nem engedélyez nullkulcsot vagy értéket.
A térképen nem lehet bejárni, ezért át kell konvertálnia Set using formátumba keySet() vagy entrySet() módszer.
Osztály | Leírás |
---|---|
HashMap | A HashMap a Map megvalósítása, de nem tart fenn rendet. |
LinkedHashMap | A LinkedHashMap a Map megvalósítása. Ez örökli a HashMap osztályt. Fenntartja a beillesztési sorrendet. |
TreeMap | A TreeMap a Map és a SortedMap megvalósítása. Fenntartja a növekvő sorrendet. |
A térképes felület hasznos módszerei
Módszer | Leírás |
---|---|
V put (objektumkulcs, objektumérték) | Egy bejegyzés beszúrására szolgál a térképen. |
void putAll (térkép térkép) | A megadott térkép térképbe történő beillesztésére szolgál. |
V putIfAbsent (K kulcs, V érték) | A megadott értéket a megadott kulccsal csak akkor szúrja be a térképbe, ha még nincs megadva. |
V eltávolítás (objektumkulcs) | A megadott kulcshoz tartozó bejegyzés törlésére szolgál. |
logikai eltávolítás (objektumkulcs, objektumérték) | Eltávolítja a megadott értékeket a hozzájuk tartozó megadott kulcsokkal a térképről. |
Set keySet() | Visszaadja az összes kulcsot tartalmazó Beállítás nézetet. |
Készlet | Visszaadja az összes kulcsot és értéket tartalmazó Beállítás nézetet. |
void clear() | A térkép visszaállítására szolgál. |
V számítás (K kulcs, BiFunction remapping Function) | A megadott kulcs és az aktuális leképezett érték (vagy nulla, ha nincs aktuális leképezés) leképezésének kiszámítására szolgál. |
V computeIfAbsent (K billentyű, függvényleképezési függvény) | Az érték kiszámítására szolgál az adott leképezési függvény segítségével, ha a megadott kulcs még nincs értékhez társítva (vagy nullára van leképezve), és beírja ebbe a leképezésbe, hacsak nem null. |
V computeIfPresent(K kulcs, BiFunction remappingFunction) | A kulcs és az aktuális leképezett érték alapján új leképezés kiszámítására szolgál, ha a megadott kulcs értéke jelen van, és nem nulla. |
logikai érték tartalmazza(objektumérték) | Ez a metódus igazat ad vissza, ha az értékkel megegyező érték létezik a térképen, ellenkező esetben hamis értéket ad vissza. |
logikai érték tartalmazzaKey (objektumkulcs) | Ez a metódus igazat ad vissza, ha a kulccsal megegyező kulcs létezik a térképen, ellenkező esetben hamis értéket ad vissza. |
logikai egyenlő (o objektum) | A megadott objektum és a térkép összehasonlítására szolgál. |
érvénytelen forEach (BiConsumer akció) | Az adott műveletet a térkép minden egyes bejegyzésére végrehajtja, amíg az összes bejegyzést fel nem dolgozta, vagy a művelet kivételt nem tesz. |
V get (objektumkulcs) | Ez a metódus azt az objektumot adja vissza, amely a kulcshoz tartozó értéket tartalmazza. |
V getOrDefault (objektumkulcs, V alapértelmezett érték) | Azt az értéket adja vissza, amelyhez a megadott kulcs le van rendelve, vagy alapértelmezett értéket, ha a leképezés nem tartalmaz leképezést a kulcshoz. |
int hashCode() | Visszaadja a térkép hash kód értékét |
logikai érték üres() | Ez a metódus igazat ad vissza, ha a térkép üres; false értéket ad vissza, ha legalább egy kulcsot tartalmaz. |
V összevonás (K kulcs, V érték, BiFunction remapping Function) | Ha a megadott kulcs még nincs hozzárendelve értékhez, vagy nullához van társítva, akkor társítja a megadott nem null értékkel. |
V csere (K kulcs, V érték) | A megadott kulcshoz tartozó értéket helyettesíti. |
logikai csere (K kulcs, V régiérték, V újérték) | Lecseréli a régi értéket egy adott kulcs új értékére. |
érvénytelen csereAll (BiFunction funkció) | Minden bejegyzés értékét lecseréli az adott függvény meghívásának eredményére, amíg az összes bejegyzés feldolgozásra nem kerül, vagy a függvény kivételt nem dob. |
Gyűjteményértékek() | A térképen található értékek gyűjteménynézetét adja vissza. |
int size() | Ez a módszer a bejegyzések számát adja vissza a térképen. |
Map.Entry Interface
A bejegyzés a Térkép alfelülete. Tehát a Map.Entry névvel fogunk hozzáférni. Visszaadja a térkép gyűjteménynézetét, amelynek elemei ebbe az osztályba tartoznak. Módszereket biztosít a kulcs és az érték megszerzéséhez.
A Map.Entry interfész módszerei
Módszer | Leírás |
---|---|
K getKey() | Kulcs beszerzésére szolgál. |
V getValue() | Értékszerzésre használják. |
int hashCode() | A hashCode megszerzésére szolgál. |
V setValue(V érték) | A bejegyzéshez tartozó érték lecserélésére szolgál a megadott értékre. |
logikai egyenlő (o objektum) | A megadott objektum összehasonlítására szolgál a többi meglévő objektummal. |
statikus | Egy olyan összehasonlítót ad vissza, amely a kulcson lévő objektumokat természetes sorrendben hasonlítja össze. |
statikus összehasonlító | Egy olyan összehasonlítót ad vissza, amely az objektumokat kulcsonként hasonlítja össze az adott Comparator segítségével. |
statikus | Egy összehasonlító eszközt ad vissza, amely az objektumokat természetes értékrendben hasonlítja össze. |
statikus összehasonlító | Egy olyan összehasonlítót ad vissza, amely az objektumokat érték szerint hasonlítja össze az adott Comparator segítségével. |
Java térképpélda: nem általános (régi stílusú)
//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()); } } }
Kimenet:
1 Amit 2 Jai 5 Rahul 6 Amit
Java térképpélda: Általános (új stílus)
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()); } } }
Kimenet:
102 Rahul 100 Amit 101 Vijay
Java térképpélda: 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); } }
Kimenet:
100=Amit 101=Vijay 102=Rahul
Java térképpélda: comparingByKey() csökkenő sorrendben
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); } }
Kimenet:
102=Rahul 101=Vijay 100=Amit
Java térképpélda: 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); } }
Kimenet:
100=Amit 102=Rahul 101=Vijay
Java térképpélda: comparingByValue() csökkenő sorrendben
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); } }
Kimenet:
101=Vijay 102=Rahul 100=Amit