Hoe kaartinterface in Java te implementeren?



Dit artikel over Java Map Inteface helpt je te begrijpen hoe Map werkt in Java en laat je kennismaken met verschillende klassen die Map Interface implementeren

Een van de meest interessante onderwerpen in Java is de kaartinterface dievertegenwoordigt een afbeelding tussen een sleutel en een waarde.Het wordt vaak verkeerd begrepen als een subtype van interface in Java.Dit artikel over Java Map Interface zal u helpen begrijpen en beheersen hoe een kaart werkt .

Hieronder staan ​​de onderwerpen die in dit artikel aan bod komen:





Java-kaartinterface

Een kaart in Java is een voorwerp dat sleutels toewijst aan waarden en is ontworpen voor snellere zoekopdrachten. Gegevens worden opgeslagen in sleutel / waarde-paren en elke sleutel is uniek. Elke sleutel wordt toegewezen aan een waarde, vandaar de naamkaart. Deze sleutel / waarde-paren worden kaartitems genoemd.

Kaarten in Java - Java Map Interface - Edureka



verschil tussen c c # en c ++

In de , java.util.Map is een dat omvat methodehandtekeningen voor het invoegen, verwijderen en ophalen van elementen op basis van een sleutel. Met dergelijke methoden is het een perfect hulpmiddel om te gebruiken voor het in kaart brengen van sleutel / waarde-associaties, zoals woordenboeken.

Kenmerken van kaartinterface

  • De kaartinterface is geen echt subtype van de verzamelingsinterface, daaromde kenmerken en het gedrag zijn anders dan de rest van de soorten collecties.
  • Het zorgt voordrie verzamelingsweergaven - set sleutels, set sleutelwaarde-toewijzingen en verzameling waarden.
  • NAARKaartkan geen dubbele sleutels bevatten en elke sleutel kan aan maximaal één waarde worden toegewezen. Sommige implementaties staan ​​null-sleutel en null-waarde toe ( HashMap en LinkedHashMap ) maar sommige niet ( TreeMap).
  • De kaartinterface garandeert de volgorde van de toewijzingen niet, maar hangt af van de implementatie. Bijvoorbeeld, Hash kaart garandeert niet de volgorde van toewijzingen, maar TreeMap doet.
  • De klasse AbstractMap biedt een skeletimplementatie van de Java Map-interface en het grootste deel van het Map-beton klassen breid de klasse AbstractMap uit en implementeer de vereiste methoden.

Nu je een idee hebt van de kaartinterface is, laten we doorgaan en de hiërarchie van Java Map bekijken.

Java-kaarthiërarchie

Er zijn twee interfaces die de kaart in java implementeren: kaart en SortedMap. En populaire implementatieklassen van Map in Java zijn HashMap, TreeMap , en LinkedHashMap. De hiërarchie van Java Map wordt hieronder gegeven:



Voordat we de drie hierboven genoemde implementatieklassen van de Java-kaartinterface bekijken, zijn hier enkele veelgebruikte methoden die u kunt tegenkomen bij het werken met de kaart.

Methoden in Java Map Interface

Methoden

Omschrijving

public put (Objectsleutel, Objectwaarde)Deze methode voegt een item in de kaart in
openbaarvoid putAll (Kaartkaart)Deze methode voegt de opgegeven kaart in deze kaart in
openbaar object verwijderen (Objectsleutel)Het wordt gebruikt om een ​​vermelding voor de opgegeven sleutel te verwijderen
publiek Set keySet ()Het geeft de weergave Set terug die alle sleutels bevat
public Set entrySet ()Het retourneert de weergave Set met alle sleutels en waarden
leegte duidelijk ()Het wordt gebruikt om de kaart te resetten
public void putIfAbsent (K-toets, V-waarde)Het voegt de gespecificeerde waarde met de gespecificeerde sleutel in de map alleen in als deze nog niet gespecificeerd is
openbaar object get (Objectsleutel)Het retourneert de waarde voor de opgegeven sleutel
public boolean containsKey (Object sleutel)
Het wordt gebruikt om de opgegeven sleutel op deze kaart te doorzoeken

Implementaties van Map

Er zijn meerdere die de Java Map implementerenmaar drie belangrijke en algemene implementaties zijnHashMap, TreeMap en LinkedHashMap.Laten we de kenmerken en het gedrag van elke implementatie eens bekijken met een voorbeeld

HashMap-klasse

De meest voorkomende klasse die de Java Map-interface implementeert, is de HashMap. Het is een op hashtabel gebaseerde implementatie van de kaartinterface.Het implementeert alle kaartbewerkingenen staat null-waarden en één null-sleutel toe. Ook handhaaft deze klasse geen enkele volgorde tussen de elementen. Hier is een voorbeeldprogramma waarin de klasse HashMap wordt gedemonstreerd.

pakket MyPackage import java.util. * class HashMapExample {public static void main (String [] args) {Map courses = new HashMap () // Voeg enkele cursussen toe. courses.put ('Java Courses', nieuwe Integer (6)) courses.put ('Cloud Courses', nieuwe Integer (7)) courses.put ('Programmeercursussen', nieuwe Integer (5)) courses.put (' Data Science Courses ', new Integer (2)) System.out.println (' Total courses: '+ courses.size ()) Setst = courses.entrySet () voor (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Java Courses' if (courses.containsKey (searchKey)) System.out.println ('Gevonden totaal' + courses.get (searchKey) + '' + searchKey)}}

Uitvoer

Totaal aantal cursussen: 4 Cloud-cursussen: 7 Programmeercursussen: 5 Data Science-cursussen: 2 Java-cursussen: 6 Totaal gevonden 6 Java-cursussen

In het bovenstaande programma heb ik veel methoden gebruikt die in de tabel worden genoemd. Ten eerste de leggen() methode voegt 4 vermeldingen in de kaart in, en de grootte() methode in de volgende stap geeft de grootte van de kaart weer (totaal aantal sleutel / waarde-paren). Daarna, in de volgende stap, het entrySet () methode retourneert alle sleutel / waarde-paren. Het programma laat ook zien hoe u gebruik kunt maken van krijgen() methode om een ​​waarde te zoeken met de bijbehorende sleutel.

Laten we verder gaan met de volgende klasse die de Java Map Interface implementeert: TreeMap.

TreeMap-klasse

Deze implementatie gebruikt de rood-zwarte boom als de onderliggende data structuur . Een TreeMap wordt gesorteerd volgens de natuurlijke volgorde van de sleutels, of door een Comparator die wordt verstrekt tijdens het maken. Deze implementatie staat geen null-waarden toe, maar behoudtorde op zijn elementen. Hier is een voorbeeldprogramma dat de TreeMap-klasse demonstreert.

pakket MyPackage import java.util. * class TreeMapEx {public static void main (String [] args) {Map courses = new TreeMap () // Voeg enkele cursussen toe. courses.put ('Java Courses', nieuwe Integer (3)) courses.put ('AWS Courses', nieuwe Integer (7)) courses.put ('Programmeercursussen', nieuwe Integer (8)) courses.put (' Data Science Courses ', new Integer (2)) System.out.println (' Total courses: '+ courses.size ()) Setst = courses.entrySet () voor (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

Uitvoer

Totaal aantal cursussen: 4 AWS-cursussen: 7 Data Science-cursussen: 2 Java-cursussen: 3 programmeercursussen: 8

In de uitvoer worden de elementen van de kaart afgedrukt in een strikte lexicografische volgorde, die niet voorkomt in de vorige voorbeelden van HashMap. De volgende les die we gaan bespreken is LinkedHashMap .

LinkedHashMap-klasse

Zoals de naam aangeeft, gebruikt deze implementatie van Java Map-interface een hashtabel en een gekoppelde lijst als de onderliggende datastructuren. Dus de volgorde van een LinkedHashMap isvoorspelbaar, met invoegvolgorde als de standaardvolgorde. Staat ook null-waarden toe zoals in HashMap. Hier is een voorbeeldprogramma dat de TreeMap-klasse demonstreert.

pakket MyPackage import java.util. * public class LinkedHashMapExample {public static void main (String a []) {LinkedHashMap courses = nieuwe LinkedHashMap () courses.put ('Java Courses', nieuw geheel getal (3)) courses.put (' Cloud Courses ', new Integer (7)) courses.put (' Programming Courses ', new Integer (8)) courses.put (' Data Science Courses ', nieuw Integer (2)) // Het drukt de elementen in dezelfde volgorde af // zoals ze zijn ingevoegd System.out.println (courses) System.out.println ('Total courses:' + courses.size ()) System.out.println ('Bevat sleutel' Hadoop '?' + courses.containsKey ('Hadoop')) System.out.println ('Waarde krijgen voor sleutel' Programmeercursussen ':' + courses.get ('Programmeercursussen')) System.out.println ('Is kaart leeg?' + Courses.isEmpty ()) System.out.println ('verwijder element' Cloud Courses ':' + courses.remove ('Cloud Courses')) System.out.println (courses)}}

Uitvoer

{Java-cursussen = 3, Cloud-cursussen = 7, Programmeercursussen = 8, Data Science-cursussen = 2} Totaal aantal cursussen: 4 Bevat de sleutel 'Hadoop'? false Waarde krijgen voor sleutel 'Programmeercursussen': 8 Is de kaart leeg? false delete element 'Cloud Courses': 7 {Java Courses = 3, Programming Courses = 8, Data Science Courses = 2}

Het voorbeeldprogramma is vrij eenvoudig te begrijpen. Ik heb een aantal basismethoden gebruikt om de werking van LinkeHashMap in Java te demonstreren. Zoals ik al eerder zei, zijn er naast deze drie nog veel andere klassen die de Java Map-interface implementeren.

Dit brengt ons bij het einde van dit ‘Java Map Interface’-artikel. Ik heb een van de interessante onderwerpen van Java behandeld, namelijk de kaartinterface in Java.

Zorg ervoor dat je zoveel mogelijk oefent en terugkeert naar je ervaring.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen ook een curriculum te bedenken dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze ‘java Map-interface’ artikel en we nemen zo snel mogelijk contact met u op.