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: