HashMap (lub HashTable) to struktura danych, która umożliwia szybki dostęp do danych przy użyciu par klucz-wartość. Klasa Java HashMap rozszerza StreszczenieMapa klasy i implementuje interfejs Map, który daje dostęp do wielu operacji. HashMaps mają dwa parametry typu — K i V, gdzie K przechowuje klucze, a V wartości w każdej HashMapie.
HashMap umożliwia mapowanie kluczy do określonej wartości i przechowywanie elementów w losowej kolejności. W tym artykule dowiesz się, jak używać klasy HashMap Java do przechowywania, pobierania, aktualizowania i usuwania danych.
Tworzenie Java HashMap
Klasa Java HashMap ma cztery konstruktory. Domyślny konstruktor jest najpopularniejszym, pozwala na stworzenie pustego HashMap, który będzie miał domyślną pojemność 16.
importJawa.util.HashMap;
publicznyklasaGłówny{
publicznystatycznypróżniaGłówny(String[] argumenty){
//tworzenie HashMap
HashMap<Liczba całkowita, ciąg> fruitsMap = nowa HashMap<Liczba całkowita, ciąg>();
}
}
The Klasa Java powyżej używa domyślnego konstruktora HashMap do utworzenia struktury danych o nazwie
owoceMapa. Obiekt fruitsMap przechowuje dane, które mają klucz całkowity i wartość ciągu. Jednak ponieważ klasa HashMap implementuje interfejs Map, może przechowywać wartość null w polu klucza, polu wartości lub w obu.Przechowywanie danych w HashMap
Za pomocą klasy HashMap można wykonać kilka operacji. The umieścić (klawisz K, wartość V) Metoda należy do jej najpopularniejszych metod i umożliwia przechowywanie danych przy użyciu pary klucz-wartość, w której każdy klucz jest mapowany na wartość.
importJawa.util.HashMap;
publicznyklasaGłówny{
publicznystatycznypróżniaGłówny(String[] argumenty){
//tworzenie HashMap
HashMap<Liczba całkowita, ciąg> fruitsMap = nowa HashMap<Liczba całkowita, ciąg>();
//dodaj elementy do HashMap
owoceMapa.put (3,"Gruszka");
owoceMap.put (6,"Mango");
owoceMap.put (7,"Śliwka");
owoceMap.put (4,"Jabłko");
owoceMapa.put (1,"Pomarańczowy");
owoceMap.put (5,"Jagody");
owoceMap.put (2,"Melon");
}
}
Zaktualizowana klasa powyżej używa metody put() w celu dodania kilku owoców i ich klucza do istniejącej struktury danych fruitsMap. Należy zauważyć, że powyższy kod losowo dodaje dane do mapy. Ten szczegół stanie się przydatny, gdy zaczniesz czytać dane z HashMap.
Odczytywanie danych z HashMap
Istnieje kilka sposobów odczytywania danych z HashMap. Użyta metoda będzie zależeć od tego, jak mają wyglądać dane, a nawet od rodzaju danych, które chcesz pobrać.
Pobierz obiekt HashMap
Jeśli chcesz pobrać dane jako obiekt, możesz po prostu uzyskać dostęp do obiektu HashMap, który w poniższym przykładzie to fruitsMap.
//Wyświetl wszystkie elementy jako obiekt
System.na zewnątrz.println(owoceMapa);
Dodanie powyższego wiersza kodu do klasy Main wyświetla w konsoli następujące dane wyjściowe:
{1=Pomarańczowy, 2=Melon, 3=Gruszka, 4=Jabłko, 5=Jagody, 6=Mango, 7=Śliwka}
Chociaż każda wartość została losowo dodana do HashMap, z danych wyjściowych zobaczysz, że HashMap przechowuje wartości w kolejności rosnącej, na podstawie klucza przypisanego do każdej wartości. Jest to funkcja, która stawia HashMaps przed innymi strukturami danych, takimi jak Tablica struktury danych które obsługują tylko pamięć liniową.
Odzyskaj wszystkie dane indywidualnie
Jeśli chcesz pobrać wszystkie dane pojedynczo, możesz użyć dla metoda, która umożliwia przechodzenie przez HashMap i drukowanie każdej wartości i odpowiadającego jej klucza. Ta metoda wykorzystuje interfejs Map implementowany przez klasę HashMap.
//wyświetl wszystkie elementy za pomocą iteratora
dla (HashMap. Wejście<Liczba całkowita, ciąg> owoc: fruitsMap.entrySet())
{
System.out.println("Klucz: " + owoce.getKey() + " Wartość: " + owoce.getValue());
}
Dodanie powyższej metody do kodu spowoduje wyświetlenie w konsoli następującego wyniku:
Klucz: 1 Wartość: Pomarańczowy
Klucz: 2 Wartość: Melon
Klucz: 3 Wartość: gruszka
Klucz: 4 Wartość: Apple
Klucz: 5 Wartość: Jagody
Klucz: 6 Wartość: Mango
Klucz: 7 Wartość: Śliwka
Pobierz konkretną wartość
Klasa HashMap ma Dostawać() metoda, która pobiera klucz i zwraca wartość zamapowaną na ten klucz.
//pobierz pojedynczy przedmiot
System.na zewnątrz.println(owoceMapa.Dostawać(4));
Powyższy wiersz kodu wyświetla w konsoli następujące dane wyjściowe:
Jabłko
Aktualizacja danych w HashMap
Po utworzeniu i wypełnieniu obiektu HashMap możesz użyć zastąpić() metodę aktualizacji dowolnego elementu na mapie. Metoda replace() przyjmuje dwa lub trzy argumenty. Pierwsza metoda replace() pobiera klucz skojarzony z istniejącym elementem wraz z nową wartością, którą chcesz do niego zmapować.
// zastąp pojedynczy element
owoceMap.replace (4, "Winogrona");
System.na zewnątrz.wydrukować(owoceMapa);
Wykonanie powyższego kodu wyświetla w konsoli następujący obiekt:
{1=Pomarańczowy, 2=Melon, 3=Gruszka, 4=Winogrona, 5=Jagody, 6=Mango, 7=Śliwka}
Jak widać z powyższego obiektu, „Winogrona” są mapowane na 4, które wcześniej były mapowane na „Jabłko”.
Druga metoda replace() pobiera klucz skojarzony z istniejącym elementem, istniejącym elementem i wartością zastępującą.
// zastąp pojedynczy element
owoceMap.replace (4, "Jabłko", "Winogrona");
System.na zewnątrz.wydrukować(owoceMapa);
Powyższy kod wyświetla w konsoli następujący obiekt:
{1=Pomarańczowy, 2=Melon, 3=Gruszka, 4=Winogrona, 5=Jagody, 6=Mango, 7=Śliwka}
Usuwanie danych z HashMap
Możesz usunąć określony element z HashMap za pomocą usunąć() metody lub usuń wszystkie dane za pomocą jasne() metoda. Metoda remove() przyjmuje jeden lub dwa argumenty. Pierwsza metoda usuwania pobiera klucz powiązany z wartością, którą chcesz usunąć:
//usuń pojedynczy element
owoceMapa.usunąć(5);
System.na zewnątrz.println(owoceMapa);
Powyższy kod wyświetla w konsoli następujący obiekt:
{1=Pomarańczowy, 2=Melon, 3=Gruszka, 4=Jabłko, 6=Mango, 7=Śliwka}
Zaktualizowany obiekt pokazuje, że element z parą klucz-wartość 5 i „Jagody” nie jest już częścią fruitsMap. Druga metoda remove() pobiera klucz i wartość, na którą jest mapowany.
//usuń pojedynczy element
owoceMap.remove (5, "Jagody");
System.na zewnątrz.println(owoceMapa);
Powyższy kod wyświetla również następujący obiekt w konsoli:
{1=Pomarańczowy, 2=Melon, 3=Gruszka, 4=Jabłko, 6=Mango, 7=Śliwka}
Metoda clear() nie przyjmuje argumentów i zwraca void.
owoceMapa.jasne();
System.na zewnątrz.println(owoceMapa);
Wykonanie powyższego kodu wyświetla następujący pusty obiekt w konsoli:
{}
Teraz możesz wykonywać operacje CRUD na Java HashMap
HashMaps to jedna z kilku popularnych struktur danych, które musisz znać. W tym artykule dowiesz się, jak wykonywać operacje CRUD na Java HashMaps. HashMap jest bardzo przydatną strukturą danych, której głównym punktem sprzedaży jest to, że jest to jedna z najbardziej wydajnych struktur danych ze względu na szybkość dostępu. Jest jednak również bardzo wygodny w użyciu, ponieważ umożliwia losowe przechowywanie.