Kolumna po lewej ma klawisze, a kolumna po prawej stronie ma odpowiednie wartości. Zauważ, że owoce, Kivi i awokado mają ten sam kolor, zielony. Również owoce, winogrona i figi mają ten sam kolor, fioletowy. Na końcu listy trzy lokalizacje czekają na własne kolory. Lokalizacje te nie mają odpowiednich owoców; Innymi słowy, te trzy lokalizacje nie mają odpowiednich kluczy.
Wszystkie lokalizacje, czy to wypełnione, czy nie, po prawej stronie są nazywane wiadrami. Dla każdej wartości jest klucz. Klucze są wyjątkowe. Wartości nie muszą być unikalne. To jest związek wielu do jednego.
To, co jest przechowywane w tabeli, to prawa kolumna. To znaczy, co jest przechowywane w tabeli. Klucze nie muszą być przechowywane. Klucz jest wysyłany jako argument do funkcji zwanej funkcją skrótu, aby osiągnąć wartość. Funkcja skrótu wytwarza odpowiedni wskaźnik powiązany z określoną wartością.
Każda struktura, która pasuje do wszystkich powyższych opisów, nazywa się skrót. Z hashmapem w Javie klucze są jednym typem obiektu, a wartości są innego typu obiektu. Może być jeden klucz zerowy i może być więcej niż jedna wartość zerowa.
Rozmiar hashmapu to liczba par kluczy/wartości (wpisy). Pojemność hashmapu to liczba wiader, czy to wypełnione, czy nie. Pojemność powinna być zawsze większa niż rozmiar.
Wraz z powyższym wprowadzeniem czytelnik może teraz nauczyć się, jak używać hashmapu w Javie.
Treść artykułu
Budowa
Hashmap to klasa, z której można utworzyć obiekt hashmap. Tworzenie obiektu z klasy konstruuje obiekt. Istnieją 4 sposoby konstruowania hashmapy w Javie.
Współczynnik obciążenia
Współczynnik obciążenia to liczba par kluczy/wartości podzielonych przez liczbę wiader.
Hashmap ()
Ta metoda konstruktora stworzyłaby hashmap pojemności 16 i współczynnika obciążenia 0.75. Oznacza to, że liczba wiader będzie 16 (i pusta), a domyślnym współczynnikiem obciążenia wynosi 0.75. Po utworzeniu hashmapu zostaną uwzględnione pary klucza/wartości. W takim przypadku, gdy liczba par kluczy/wartości osiągnie 12, przy 12/16 = 0.75, hasze. Oznacza to, że automatycznie zwiększy liczbę wiader do 32 (podwojenie). Poniższy kod pokazuje, jak utworzyć obiekt hashmap za pomocą tego konstruktora:
Importuj Java.Util.*;Klasa hashmap jest w Javie.pakiet UTIL. W przypadku tego kodu klucze byłyby ciągi, a wartości również byłyby ciągi.
Hashmap (int inicidealCapacity)
To pozwala programistowi zacząć od innej pojemności, ale nadal od współczynnika obciążenia 0.75. Ilustracja:
Importuj Java.Util.*;Tak więc obiekt HASMAP rozpoczyna się od 20 pustych wiader. Tutaj klucze są liczbowymi. Różnią się od indeksów tablicy w tym sensie, że pierwszy indeks niekoniecznie wynosi zero. Ponadto indeksy nie są przylegające. Na przykład pierwszy indeks może 20; Następny to 35, jeden po 52 itp.
UWAGA: W przypadku skrótów zamawianie par kluczy/wartości nie jest utrzymywane. To znaczy, jeśli zestaw par kluczy/wartości jest zawarty w jednej kolejności, po wyświetlaniu treści, kolejność będzie inna, chociaż wszystkie dołączone pary klucza/wartości nadal tam będą.
Pary klucza/wartości dla hashmapu są lepiej określane jako mapowania.
Hashmap (int inicidealCapacity, float LoadFactor)
Tutaj cytowany jest również współczynnik obciążenia. Współczynnik obciążenia jest typem pływaka, a nie typ liczb całkowitych. Tutaj współczynnik obciążenia inny niż 0.75 jest cytowane. Istnieją zalety i wady posiadania współczynnika obciążenia, który różni się od 0.75 - patrz później. Ilustracja:
Importuj Java.Util.*;Zwróć uwagę na użycie „f” jako sufiaka dla współczynnika obciążenia.
Hashmap (mapa m)
Ten konstruktor utworzy hashmap z mapy, która już istnieje - patrz później.
W tym pary klucza/wartości
PUT (KLUCZ K, WARTOŚĆ V)
Ta metoda odnosi szczególną wartość do konkretnego klucza. Klucz jest faktycznie osadzony w indeksie, który jest bezpośrednio powiązany z wartością. Jednak to programista lub użytkownik decyduje o wartości i jej kluczu. Poniższy przykład tworzy HASMAP, HM i zawiera wszystkie pary klucza/wartości i puste wiadra z góry:
Pojemność wynosi 11. Liczba par kluczy/wartości wynosi 8. Oznacza to, że rozmiar to 8. Tak więc skuteczny współczynnik obciążenia wynosi 8/11 = 0.73f. Liczba pustych wiader wynosi 11 - 8 = 3.
putifabsent (klucz k, wartość v)
Obejmuje to parę klucza/wartości, jeśli klucz nie istnieje jeszcze w hashmapie. W takim przypadku wartość zwracana jest null. Jeśli klucz już istnieje, nic się nie zmienia, a stara wartość dla klucza jest zwracana. Jeśli do dołu powyższego kodu (w main ()) dodano następujący kod, dane wyjściowe byłoby zerowe:
Uwaga: PUT (KLUCZ K, WARTOŚĆ V) PRZESUSZAŁY PARY KLUCZ/WARTO.
Rozmiar hashmapy
Rozmiar hashmapu to liczba par kluczy/wartości.
rozmiar()
Poniższe stwierdzenie zwróci rozmiar hashmap:
jest pusty()
Ta metoda, zwraca true, jeśli hashmap nie zawiera żadnych odwzorowań wartości kluczowej lub Fałsz w przeciwnym razie. Przykład:
Pusta hashmap może mieć puste wiadra.
Czytanie hashmapu
Get (klucz obiektu)
Zwraca (kopiuje) wartość odpowiadającą klucze; lub zwraca null, jeśli nie ma odpowiedniej wartości. Przykład:
zawiera (klucz obiektowy)
Zwraca prawdziwie, jeśli istnieje mapowanie dla tego konkretnego klucza; Fałsz inaczej. Przykład:
zawiera wartość (wartość obiektu)
Zwraca prawdziwie, jeśli istnieje mapowanie dla tej wartości; Fałsz inaczej. Przykład:
zestaw kluczy()
Ta metoda zwraca wszystkie klucze par kluczy/wartości. Przykładowy kod:
Zauważ, że obiekt powrotu jest zestawem. Jeśli używana jest powyższa oryginalna hashmap, wyjście byłoby:
Lemon, Kivi, Fig, winogrona, wapno, awokado, czerwone jabłko, banan,Zauważ, że zamówienie nie jest kolejnością, w której dołączone były klucze.
wartości ()
Ta metoda zwraca zbiór wszystkich wartości w hashmapie. Przykładowy kod:
Zauważ, że obiekt powrotny jest kolekcją. Jeśli używana jest powyższa oryginalna hashmap, wyjście byłoby:
Blasty żółty, zielony, fioletowy, fioletowy, żółto-zielony, zielony, czerwony, żółty,Zauważ, że zamówienie nie jest kolejnością, w której uwzględniono wartości.
Entymet ()
Zwraca to wszystkie pary klucza/wartości, ale programista musi oddzielić każdy klucz od odpowiedniej wartości. Przykładowy kod:
Jeśli używana jest powyższa oryginalna hashmap, wyjście byłoby:
cytryna => jasnożółtyZauważ, że zamówienie nie jest kolejnością, w której uwzględniono pary klucza/wartości.
Modyfikowanie hashmapu
PUT (KLUCZ K, WARTOŚĆ V)
Metoda put () jest podobna do metody putifabsent (), ponieważ jeśli klucz już istnieje, stara wartość jest zwracana, a jeśli klucz jeszcze nie istnieje, null jest zwracany. Nie zapominaj, że put () zastępuje starą wartość, jeśli klucz już istnieje. Jeśli klucz jeszcze nie istnieje, Put () zawiera nowy wpis (para klucza/wartości).
Wymień (klucz K, wartość V)
W przypadku klucza, który jest już na miejscu, metoda ta służy do zastąpienia wartości dla odpowiedniego klucza. Hashmap to struktura wielu do jednego. Przykładowym kodem powyższego hashmap jest:
Wyjście to:
żółtyMetoda zastępcza () zwraca starą wartość. Jeśli klucz nie istnieje, zwraca NULL i nic nie jest zastąpione.
Wymień (KLEY K, V OLDVALUE, V NEWVALUE)
Umożliwia to wymianę konkretnej wartości, o której wiedział programista. Zwraca prawdę, jeśli się powiedzie i fałszywe, jeśli tak nie. Przykładowy kod powyższego obiektu Hashmap to:
Usuń (klucz obiektu)
To usuwa parę klawisza/wartości odwzorowaną przez klucz. Zwraca odpowiednią wartość usuniętą. Zwraca Null, jeśli klucz nie był obecny. Przykładowy kod powyższego hashmap jest:
Usuń (klucz obiektu, wartość obiektu)
Umożliwia to usunięcie wpisu (pary klucza/wartości) dla konkretnej wartości, o której wiedział programista. Zwraca prawdę, jeśli się powiedzie i fałszywe, jeśli tak nie. Przykładowy kod powyższego obiektu Hashmap to:
Wniosek
Tablicę można uznać za mapowanie indeksów na wartości (określonego typu). Hashmap powinien być używany, gdy potrzebne jest mapowanie jednego typu obiektu na inny typ obiektu. W ten sposób istnieją pary klucza/wartości. Hash to struktura danych, w której liczba wartości jest ograniczona, ale liczba możliwych kluczy jest większa niż liczba możliwych wartości. I tak trzeba mieć klucze, aby osiągnąć wartości. Java Hashmap dla jego niejawnej funkcji hash został przedstawiony powyżej. Programista może napisać własną funkcję haszu (mapowania). Jest to jednak temat na jakiś czas.
Chrys