logo

Java-kaartinterface

Een kaart bevat waarden op basis van sleutel, d.w.z. sleutel- en waardepaar. Elk sleutel- en waardepaar staat bekend als een invoer. Een kaart bevat unieke sleutels.

snel sorteren van Java

Een Kaart is handig als u aan de hand van een sleutel elementen moet zoeken, bijwerken of verwijderen.

Java-kaarthiërarchie

Er zijn twee interfaces voor het implementeren van Map in Java: Map en SortedMap, en drie klassen: HashMap, LinkedHashMap en TreeMap. De hiërarchie van Java Map wordt hieronder weergegeven:

Java-kaarthiërarchie

Een kaart staat geen dubbele sleutels toe, maar u kunt wel dubbele waarden hebben. HashMap en LinkedHashMap staan ​​nulsleutels en -waarden toe, maar TreeMap staat geen nulsleutel of -waarde toe.

Een kaart kan niet worden doorkruist, dus u moet deze omzetten in een set met behulp van sleutelbos() of entrySet() methode.

KlasBeschrijving
Hash kaart HashMap is de implementatie van Map, maar handhaaft geen enkele volgorde.
GelinkteHashMapLinkedHashMap is de implementatie van Map. Het erft de HashMap-klasse. Het handhaaft de invoegvolgorde.
Boomkaart TreeMap is de implementatie van Map en SortedMap. Het handhaaft de oplopende volgorde.

Handige methoden voor de kaartinterface

MethodeBeschrijving
V put(Objectsleutel, Objectwaarde)Het wordt gebruikt om een ​​item op de kaart in te voegen.
void putAll (kaartkaart)Het wordt gebruikt om de opgegeven kaart in de kaart in te voegen.
V putIfAbsent(K-sleutel, V-waarde)Het voegt de opgegeven waarde met de opgegeven sleutel alleen in de kaart in als deze nog niet is opgegeven.
V verwijderen (Objecttoets)Het wordt gebruikt om een ​​vermelding voor de opgegeven sleutel te verwijderen.
boolean remove(Objectsleutel, Objectwaarde)Het verwijdert de opgegeven waarden met de bijbehorende opgegeven sleutels van de kaart.
Stel sleutelSet() inHet retourneert de Set-weergave met alle sleutels.
SetentrySet()Het retourneert de Set-weergave met alle sleutels en waarden.
leegte helder()Het wordt gebruikt om de kaart te resetten.
V compute (K-sleutel, BiFunction remappingFunction)Het wordt gebruikt om een ​​toewijzing te berekenen voor de opgegeven sleutel en de huidige toegewezen waarde (of null als er geen huidige toewijzing is).
V computeIfAbsent(K-sleutel, FunctietoewijzingFunctie)Het wordt gebruikt om de waarde ervan te berekenen met behulp van de gegeven toewijzingsfunctie, als de opgegeven sleutel nog niet aan een waarde is gekoppeld (of is toegewezen aan null), en deze in deze kaart invoert, tenzij null.
V computeIfPresent(K-sleutel, BiFunction remappingFunction)Het wordt gebruikt om een ​​nieuwe toewijzing te berekenen op basis van de sleutel en de huidige toegewezen waarde als de waarde voor de opgegeven sleutel aanwezig is en niet nul is.
booleaanse waarde bevatWaarde(Objectwaarde)Deze methode retourneert waar als er een waarde bestaat die gelijk is aan de waarde binnen de kaart, en retourneert anders false.
boolean containKey(Objectsleutel)Deze methode retourneert waar als er een sleutel bestaat die gelijk is aan de sleutel binnen de kaart, anders wordt onwaar geretourneerd.
Booleaanse waarde is gelijk aan(Object o)Het wordt gebruikt om het opgegeven object met de kaart te vergelijken.
void forEach(BiConsumer-actie)Het voert de gegeven actie uit voor elk item op de kaart totdat alle items zijn verwerkt of de actie een uitzondering genereert.
V get(Objectsleutel)Deze methode retourneert het object dat de waarde bevat die aan de sleutel is gekoppeld.
V getOrDefault(Objectsleutel, V standaardwaarde)Het retourneert de waarde waaraan de opgegeven sleutel is toegewezen, of defaultValue als de kaart geen toewijzing voor de sleutel bevat.
int hashCode()Het retourneert de hashcodewaarde voor de kaart
booleaanse waarde isLeeg()Deze methode retourneert true als de kaart leeg is; retourneert false als deze ten minste één sleutel bevat.
V samenvoegen (K-sleutel, V-waarde, BiFunction remappingFunction)Als de opgegeven sleutel nog niet aan een waarde is gekoppeld of aan null is gekoppeld, wordt deze aan de opgegeven niet-null-waarde gekoppeld.
V vervangen (K-sleutel, V-waarde)Het vervangt de opgegeven waarde voor een opgegeven sleutel.
boolean vervangen(K sleutel, V oudeWaarde, V nieuweWaarde)Het vervangt de oude waarde door de nieuwe waarde voor een opgegeven sleutel.
void ReplaceAll(BiFunction-functie)Het vervangt de waarde van elk item door het resultaat van het aanroepen van de gegeven functie voor dat item totdat alle items zijn verwerkt of de functie een uitzondering genereert.
Verzamelingswaarden()Het retourneert een verzamelingsweergave van de waarden op de kaart.
int-grootte()Deze methode retourneert het aantal vermeldingen op de kaart.

Map.Entry-interface

Entry is de subinterface van Map. We zullen er dus toegang toe krijgen via de Map.Entry-naam. Het retourneert een verzamelingsweergave van de kaart, waarvan de elementen van deze klasse zijn. Het biedt methoden om sleutel en waarde te verkrijgen.

Methoden van de Map.Entry-interface

MethodeBeschrijving
K getKey()Het wordt gebruikt om een ​​sleutel te verkrijgen.
V getWaarde()Het wordt gebruikt om waarde te verkrijgen.
int hashCode()Het wordt gebruikt om hashCode te verkrijgen.
V setWaarde(V-waarde)Het wordt gebruikt om de waarde die overeenkomt met deze invoer te vervangen door de opgegeven waarde.
Booleaanse waarde is gelijk aan(Object o)Het wordt gebruikt om het opgegeven object te vergelijken met de andere bestaande objecten.
statischComparatorvergelijkenByKey()Het retourneert een comparator die de objecten in natuurlijke volgorde op de sleutel vergelijkt.
statische vergelijkervergelijkenByKey(Comparator cmp)Het retourneert een comparator die de objecten per sleutel vergelijkt met behulp van de gegeven Comparator.
statischComparatorvergelijkenDoorWaarde()Het retourneert een comparator die de objecten in natuurlijke volgorde op waarde vergelijkt.
statische vergelijkervergelijkenByValue(Comparator cmp)Het retourneert een comparator die de objecten op waarde vergelijkt met behulp van de gegeven Comparator.

Voorbeeld van een Java-kaart: niet-generiek (oude stijl)

 //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()); } } } 

Uitgang:

 1 Amit 2 Jai 5 Rahul 6 Amit 

Voorbeeld van Java-kaart: Generiek (nieuwe stijl)

 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()); } } } 

Uitgang:

 102 Rahul 100 Amit 101 Vijay 

Voorbeeld van een Java-kaart: CompareByKey()

 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); } } 

Uitgang:

 100=Amit 101=Vijay 102=Rahul 

Voorbeeld van een Java-kaart: CompareByKey() in aflopende volgorde

 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); } } 

Uitgang:

 102=Rahul 101=Vijay 100=Amit 

Voorbeeld van een Java-kaart: CompareByValue()

 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); } } 

Uitgang:

if door Rudyard Kipling regel voor regel uitleg
 100=Amit 102=Rahul 101=Vijay 

Voorbeeld van een Java-kaart: CompareByValue() in aflopende volgorde

 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); } } 

Uitgang:

 101=Vijay 102=Rahul 100=Amit