HashMap in Java

⚡ Smart sammanfattning

HashMap in Java lagrar data som unika nyckel-värdepar som snabbt kan hämtas med hjälp av nyckeln. Den innehåller objektreferenser snarare än primitiva, så wrapper-klasser används och erbjuder metoder som put, get, remove och containsKey.

  • 🗝️ HashMap Definierad: Lagrar unika nycklar mappade till värden för snabb hämtning per nyckel.
  • 📦 Objektreferenser: Innehåller endast objekt, så använd wrapper-klasser som Integer istället för primitiv.
  • 🔧 Kärnmetoder: put() lagrar ett par, get() hämtar ett värde, remove() tar bort med nyckel.
  • 🔍 Uppslagningar: containsKey(), keySet(), values() och isEmpty() inspekterar kartans innehåll.
  • 🧪 Exempel: Exempelprogram skapar en karta, skriver ut den och tar bort en post med hjälp av nyckel.

HashMap in Java

Vad finns Hashmap i Java?

En HashMap betecknar i princip unika nycklar till motsvarande värden som kan hämtas när som helst.

HashMap in Java

Dragen av Java Hashmap

a) Den värden kan lagras i en karta genom att bilda en nyckelvärde par. Värdet kan hämtas med nyckeln genom att skicka det till rätt metod.

b) Om inget element finns i kartan, kommer det att kasta ett 'NoSuchElementException'.

c) Endast HashMap-butiker objektreferenser. Det är därför det är omöjligt att använda primitiva datatyper som dubbel eller int. Använd omslagsklass (som heltal eller Double) istället.

Dragen av Java Hashmap

Använder HashMaps i Java program:

Följande är de två sätten att deklarera en Hash-karta:

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

Viktiga hashmap-metoder

  • get(Object KEY) – Detta kommer att returnera värdet som är associerat med en angiven nyckel i denna Java hashmap.
  • put(Object KEY, String VALUE) – Denna metod lagrar det angivna värdet och associerar det med den angivna nyckeln i denna karta.

Java Exempel på hashmap

Följande är ett exempel på implementering av 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);
  }
}

Produktion:

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

Exempel: Ta bort ett värde från HashMap baserat på nyckel

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

Produktion:

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}

Låt oss ställa några frågor till själva Hash-kartan för att veta den bättre

F: Så Mr.Hash Map, hur kan jag ta reda på om en viss nyckel har tilldelats dig?

S: Coolt, du kan använda metoden containsKey(Object KEY) med mig, den returnerar ett booleskt värde om jag har ett värde för den givna nyckeln.

F: Hur hittar jag alla tillgängliga nycklar som finns på kartan?

A: Jag har en metod som heter som nyckeluppsättning() som kommer att returnera alla nycklar på kartan. I exemplet ovan, om du skriver en rad som –
System.out.println(objMap.keySet());

Det kommer att returnera en produktion som-
[Namn, typ, effekt, pris]

På samma sätt, om du bara behöver alla värden, har jag en metod för värden().
System.out.println(objMap.values());

Det kommer att returnera en produktion som-
[Suzuki, 2-hjuling, 220, 85000]

F: Antag att jag bara behöver ta bort en viss nyckel från kartan, måste jag ta bort hela kartan?

A: Nej kompis!! Jag har en metod ta bort(Object KEY) som tar bort endast det specifika nyckel-värdeparet.

F: Hur kan vi kontrollera om du faktiskt innehåller några nyckel-värdepar?

A: Kolla bara om jag är tom eller inte!! Kort sagt, använd är tom() metod mot mig..

Vanliga frågor

HashMap är icke-synkroniserad och tillåter en nullnyckel och flera nullvärden, vilket gör den snabbare för enkeltrådad användning. Hashtable är synkroniserad och tillåter inte nullnycklar eller -värden, vilket gör den trådsäker men långsammare.

Ja. En HashMap tillåter exakt en nullnyckel och ett valfritt antal nullvärden. Om du försöker lägga till en andra nullnyckel skrivs det värde som är associerat med den befintliga nullnyckeln över.

Nej. HashMap garanterar inte någon ordning för sina nycklar. Om du behöver insättningsordning, använd LinkedHashMap, och om du behöver sorterad ordning efter nyckel, använd TreeMap istället.

AI kan analysera åtkomstmönster som uppslagningar, ordning och samtidighetsbehov, och sedan rekommendera HashMap, TreeMap, LinkedHashMap eller ConcurrentHashMap, helping utvecklare väljer den mest effektiva samlingen för sitt användningsfall.

Ja. AI-assisterad analys kan flagga en delad HashMap som åtkoms av flera trådar utan synkronisering och rekommendera ConcurrentHashMap eller extern låsning för att förhindra kapplöpningsförhållanden och datakorruption.

Sammanfatta detta inlägg med: