HashMap in Java

⚡ Slimme samenvatting

HashMap in Java Slaat gegevens op als unieke sleutel-waardeparen die snel kunnen worden opgevraagd met behulp van de sleutel. Het bevat objectreferenties in plaats van primitieve gegevenstypen, waardoor wrapperklassen worden gebruikt, en biedt methoden zoals put, get, remove en containsKey.

  • ​ HashMap gedefinieerd: Slaat unieke sleutels op die aan waarden zijn gekoppeld, zodat gegevens snel op basis van de sleutel kunnen worden opgevraagd.
  • ???? Objectverwijzingen: Bevat alleen objecten, dus gebruik wrapperklassen zoals Integer in plaats van primitieve gegevenstypen.
  • 🔧 Kernmethoden: put() slaat een paar op, get() haalt een waarde op, remove() verwijdert op basis van de sleutel.
  • 🔍 Zoekopdrachten: containsKey(), keySet(), values() en isEmpty() controleren de inhoud van de map.
  • 🧪 Voorbeelden: De voorbeeldprogramma's maken een kaart, printen deze af en verwijderen een item op basis van een sleutel.

HashMap in Java

Waar zit Hashmap in Java?

Een HashMap duidt in feite aan unieke sleutels corresponderen waarden die op elk gewenst moment kan worden opgehaald.

HashMap in Java

Kenmerken van Java Hash kaart

a) De waarden kan op een kaart worden opgeslagen door een sleutel waarde paar. De waarde kan worden opgehaald met behulp van de sleutel door deze door te geven aan de juiste methode.

b) Als geen onderdeel bestaat op de kaart, zal het een 'NoSuchElementException'.

c) Alleen HashMap-winkels objectreferenties. Daarom is het onmogelijk om het te gebruiken primitieve gegevenstypen zoals double of int. Gebruik wrapper-klasse (zoals Integer of Double) in plaats daarvan.

Kenmerken van Java Hash kaart

HashMaps gebruiken in Java programma:

Hieronder staan ​​de twee manieren om een ​​Hash Map te declareren:

HashMap<String, Object> map = new HashMap<String, Object>();
HashMap x  = new HashMap();

Belangrijke Hashmap-methoden

  • get(objectsleutel) – Hiermee wordt de waarde geretourneerd die aan een opgegeven sleutel hierin is gekoppeld Java hashmap.
  • put(ObjectSLEUTEL, TekenreeksWAARDE) – Deze methode slaat de opgegeven waarde op en koppelt deze aan de opgegeven sleutel in deze kaart.

Java Hashmap-voorbeeld

Hieronder ziet u een voorbeeld van een implementatie van Java Hash Map:

import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<String, String> objMap = new HashMap<String, String>();
    objMap.put("Name", "Suzuki");
    objMap.put("Power", "220");
    objMap.put("Type", "2-wheeler");
    objMap.put("Price", "85000");
    System.out.println("Elements of the Map:");
    System.out.println(objMap);
  }
}

Output:

Elements of the Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}

Voorbeeld: een waarde uit HashMap verwijderen op basis van de sleutel

import java.util.*;
public class HashMapExample {
   public static void main(String args[]) {
   // create and populate hash map
   HashMap<Integer, String> map = new HashMap<Integer, String>();
   map.put(1,"Java");
   map.put(2, "Python");
   map.put(3, "PHP");
   map.put(4, "SQL");
   map.put(5, "C++");
   System.out.println("Tutorial in Guru99: "+ map);
   // Remove value of key 5
   map.remove(5);
   System.out.println("Tutorial in Guru99 After Remove: "+ map);
   }
}

Output:

Tutorial in Guru99: {1=Java, 2=Python, 3=PHP, 4=SQL, 5=C++}
Tutorial in Guru99 After Remove: {1=Java, 2=Python, 3=PHP, 4=SQL}

Laten we een paar vragen stellen aan de Hash Map zelf om deze beter te leren kennen

Vraag: Dus meneer Hash Map, hoe kan ik erachter komen of een bepaalde sleutel aan u is toegewezen?

A: Cool, je kunt bij mij de methode containKey(Object KEY) gebruiken, deze retourneert een Booleaanse waarde als ik een waarde heb voor de gegeven sleutel.

Vraag: Hoe vind ik alle beschikbare sleutels die op de kaart aanwezig zijn?

A: Ik heb een methode genaamd as sleutelbos() waarmee alle sleutels op de kaart worden geretourneerd. Als u in het bovenstaande voorbeeld een regel schrijft als –
Systeem.out.println(objMap.keySet());

Het zal een retour sturen uitvoer net zo-
[Naam, Type, Vermogen, Prijs]

Op dezelfde manier, als je alleen alle waarden nodig hebt, heb ik een methode voor waarden().
Systeem.out.println(objMap.values());

Het zal een retour sturen uitvoer net zo-
[Suzuki, tweewieler, 2, 220]

Vraag: Stel dat ik slechts een bepaalde sleutel van de kaart moet verwijderen. Moet ik dan de hele kaart verwijderen?

A: Nee vriend!! Ik heb een methode verwijderen(Object KEY) waarmee alleen dat specifieke sleutel-waardepaar wordt verwijderd.

Vraag: Hoe kunnen we controleren of u daadwerkelijk enkele sleutel-waardeparen bevat?

A: Controleer gewoon of ik leeg ben of niet!! Kortom, gebruik is leeg() methode tegen mij..

Veelgestelde vragen

HashMap is niet-gesynchroniseerd en staat één null-sleutel en meerdere null-waarden toe, waardoor het sneller is voor gebruik in een enkele thread. Hashtable is gesynchroniseerd en staat geen null-sleutels of -waarden toe, waardoor het thread-safe is, maar wel trager.

Ja. Een HashMap staat precies één null-sleutel en een willekeurig aantal null-waarden toe. Als je probeert een tweede null-sleutel toe te voegen, wordt de waarde die aan de bestaande null-sleutel is gekoppeld, simpelweg overschreven.

Nee. Een HashMap garandeert geen specifieke volgorde van de sleutels. Als je een invoegvolgorde nodig hebt, gebruik dan een LinkedHashMap, en als je een gesorteerde volgorde op sleutel nodig hebt, gebruik dan een TreeMap.

AI kan toegangspatronen analyseren, zoals zoekopdrachten, volgorde en gelijktijdigheidsbehoeften, en vervolgens HashMap, TreeMap, LinkedHashMap of ConcurrentHashMap aanbevelen.ping Ontwikkelaars kiezen de meest efficiënte collectie voor hun specifieke toepassing.

Ja. AI-ondersteunde analyse kan een gedeelde HashMap signaleren die door meerdere threads zonder synchronisatie wordt gebruikt en ConcurrentHashMap of externe vergrendeling aanbevelen om raceomstandigheden en gegevenscorruptie te voorkomen.

Vat dit bericht samen met: