HashMapa w Java

⚡ Inteligentne podsumowanie

HashMapa w Java Przechowuje dane jako unikalne pary klucz-wartość, które można szybko pobrać za pomocą klucza. Przechowuje odwołania do obiektów zamiast prymitywów, dlatego używane są klasy opakowujące, i oferuje metody takie jak put, get, remove i containsKey.

  • 🗝️ Definicja HashMap: Przechowuje unikalne klucze przypisane do wartości, umożliwiając szybkie pobieranie według klucza.
  • 📦 Odwołania do obiektów: Przechowuje wyłącznie obiekty, dlatego należy używać klas opakowującej, takich jak Integer, zamiast klas prymitywnych.
  • 🔧 Metody podstawowe: put() przechowuje parę, get() pobiera wartość, remove() usuwa według klucza.
  • 🔍 Wyszukiwania: containsKey(), keySet(), values() i isEmpty() sprawdzają zawartość mapy.
  • 🧪 Przykłady: Przykładowe programy tworzą mapę, drukują ją i usuwają wpisy według klucza.

HashMapa w Java

W czym jest Hashmap Java?

HashMap zasadniczo oznacza unikalne klucze do odpowiedniego wartości które można odzyskać w dowolnym momencie.

HashMapa w Java

Cechy Java Hashmapa

a) wartości można zapisać na mapie, tworząc plik a kluczowa wartość para. Wartość można pobrać za pomocą klucza przekazując ją do właściwej metody.

b) Jeśli żadnego elementu istnieje na mapie, wyświetli komunikat „Wyjątek NoSuchElement”.

c) Tylko sklepy HashMap odniesienia do obiektów. Dlatego nie da się z niego skorzystać prymitywne typy danych jak double lub int. Użyj klasy opakowującej (jak Integer lub Double) zamiast.

Cechy Java Hashmapa

Korzystanie z HashMaps w Java Programy:

Oto dwa sposoby deklarowania mapy skrótów:

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

Ważne metody Hashmap

  • pobierz (KLUCZ obiektu) – To zwróci wartość powiązaną z określonym kluczem w this Java mapa skrótów.
  • put(KLUCZ obiektu, WARTOŚĆ ciągu) – Ta metoda przechowuje określoną wartość i kojarzy ją z określonym kluczem na tej mapie.

Java Przykład Hashmapy

Poniżej znajduje się przykładowa implementacja mapy skrótów Java:

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

Wyjście:

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

Przykład: Usuń wartość z HashMap na podstawie klucza

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

Wyjście:

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}

Zadajmy kilka zapytań samej Mapie Hash, aby poznać ją lepiej

P: A zatem, Panie Hashu Mapie, jak mogę sprawdzić, czy dany klucz został do Pana przypisany?

O: Świetnie, możesz użyć ze mną metody zawieraKey(Object KEY), zwróci ona wartość logiczną, jeśli mam wartość dla danego klucza.

P: Jak znaleźć wszystkie dostępne klucze obecne na mapie?

Odp.: Mam metodę zwaną as zestaw kluczy() który zwróci wszystkie klucze na mapie. W powyższym przykładzie, jeśli napiszesz linię jako –
System.out.println(objMap.keySet());

Zwróci wydajność jak-
[Nazwa, typ, moc, cena]

Podobnie, jeśli potrzebujesz tylko wszystkich wartości, mam metodę wartości().
System.out.println(objMap.values());

Zwróci wydajność jak-
[Suzuki, dwukołowiec, 2, 220]

P: Załóżmy, że muszę usunąć tylko określony klucz z mapy. Czy muszę usunąć całą mapę?

Odp.: Nie, kolego!! Mam metodę usunąć(Object KEY), który usunie tylko tę konkretną parę klucz-wartość.

P: Jak możemy sprawdzić, czy faktycznie zawierasz pary klucz-wartość?

Odp.: Po prostu sprawdź, czy jestem pusty, czy nie!! Krótko mówiąc, użyj jest pusty() metoda przeciwko mnie..

FAQ

HashMap jest niezsynchronizowany i dopuszcza jeden klucz null oraz wiele wartości null, co przyspiesza jego działanie w trybie jednowątkowym. Hashtable jest zsynchronizowany i nie dopuszcza kluczy null ani wartości null, co czyni go bezpiecznym dla wątków, ale wolniejszym.

Tak. HashMap dopuszcza dokładnie jeden klucz null i dowolną liczbę wartości null. Próba dodania drugiego klucza null powoduje jedynie nadpisanie wartości powiązanej z istniejącym kluczem null.

Nie. HashMap nie gwarantuje żadnej kolejności kluczy. Jeśli potrzebujesz kolejności wstawiania, użyj LinkedHashMap, a jeśli potrzebujesz posortowanej kolejności kluczy, użyj TreeMap.

Sztuczna inteligencja może analizować wzorce dostępu, takie jak wyszukiwania, porządkowanie i potrzeby współbieżności, a następnie zalecać HashMap, TreeMap, LinkedHashMap lub ConcurrentHashMap.ping Programiści wybierają zbiór najbardziej efektywny dla swojego przypadku użycia.

Tak. Analiza wspomagana przez sztuczną inteligencję może oznaczyć współdzielony HashMap, do którego dostęp uzyskuje wiele wątków bez synchronizacji, i zalecić użycie ConcurrentHashMap lub blokadę zewnętrzną, aby zapobiec wyścigom i uszkodzeniom danych.

Podsumuj ten post następująco: