Na poziomie podstawowym jedno z najczęściej zadawanych pytań dotyczy Java HashMap vs Hashtable. Musisz więc być w pełni przygotowany, aby odpowiedzieć na wszystko, co dotyczy HashMap lub Hashtable. Java wykorzystuje HashMap i Hashtable do przechowywania danych w postaci klucz i wartości . Tak więc ten artykuł pomoże ci poznać główne różnice między tymi dwoma.
Będę omawiać tematy w następującej kolejności:
Zaczynajmy!
Co to jest HashMap?
HashMap jest klasą kolekcji opartą na mapie w programie który jest używany do przechowywania danych w parach klucz i wartość. Pomaga we wdrażaniu interfejsu Map w Javie. Jest to w zasadzie część od wersji Java 1.2 i zapewnia podstawową implementację interfejsu Map w Javie. Aby uzyskać dostęp do wartości w HashMap, trzeba znać jej Klucz .
Jest określany jako HashMap, ponieważ wykorzystuje technikę o nazwie Haszowanie . Haszowanie to proces konwertowania pliku large na mniejszy, zachowując stałą wartość String. Wynikowa skompresowana wartość pomaga w indeksowaniu i szybszym wyszukiwaniu.
Fibonacci Sequence java for loop
Co to jest Hashtable?
Hashtable to plik struktura danych używany do przechowywania par kluczy / wartości. W tablicy z haszowaniem dane są przechowywane w formacie tablicowym, w którym każda wartość danych ma swoją własną unikalną wartość indeksu. Możesz uzyskać dostęp do danych naprawdę szybko, jeśli znasz indeks żądanych danych.
Klasa Java Hashtable implementuje tablicę haszującą, która odwzorowuje klucze na wartości. Dziedziczy klasę Dictionary i implementuje interfejs Map.
Deklaracja Hashtable
public class Hashtable rozszerza Dictionary implementuje Map, Cloneable, Serializable
DO: Jest to typ kluczy, które znajdują się na mapie.
V: To jest typ mapowanych wartości.
która metoda klasy skanera odczytuje ciąg?
Teraz, kiedy już zrozumieliście, jak działa HashMap i Hashtable w Javie, przyjrzyjmy się parametrom, aby zrozumieć różnice między HashMap i Hashtable.
Zwróćmy teraz uwagę na główne różnice między HashMap i Hashtable.
Java HashMap vs Hashtable
Parametry | HashMap | Hashtable |
Synchronizacja | Niezsynchronizowany oznacza, że nie jest bezpieczny dla wątków i nie może być współużytkowany między wieloma wątkami bez odpowiedniego kodu synchronizacji. | Zsynchronizowane i można je udostępniać w wielu wątkach |
Puste klucze | Zezwala tylko na jeden klucz pusty i wiele wartości null | Nie zezwala na klucz pusty ani jego wartość |
System prawny | To jest część kolekcji Java | Hashtable to starsza klasa, która nie była częścią inicjału |
Iterator | Iterator działa bezawaryjnie i zgłasza wyjątek concurrentModificationException, jeśli jakikolwiek inny wątek próbuje zmodyfikować mapę | Moduł wyliczający nie działa bezawaryjnie |
Dziedziczenie klasy | Dziedziczy AbstractMap klasa | Dziedziczy klasę Dictionary |
Kiedy możesz teraz używać Java HashMap i Hashtable?
Kiedy używać HashMap i Hashtable?
- Synchronizacja jest główna różnica między Java HashMap i Hashtable. Ale jeśli istnieje potrzeba operacji bezpiecznej dla wątków, można użyć Hashtable, ponieważ wszystkie jego metody są zsynchronizowane. Ale to jest klasą starszą i należy ich unikać. Nie jest to możliwe przez HashMap.
- W środowisku wielowątkowym można użyć ConcurrentHashMap, który jest prawie podobny do Hashtable. Tutaj możesz nawet jawnie zsynchronizować HashMap
- Zsynchronizowana operacja skutkuje niską wydajnością, dlatego należy jej unikać, dopóki nie jest to wymagane. Stąd w środowisku bez wątków, HashMap jest zdecydowanie używany bez żadnych wątpliwości.
To prowadzi nas do końca tego artykułu, w którym poznaliśmy różnice pomiędzy Java HashMap i Hashtable. Mam nadzieję, że rozumiesz ten temat.
samouczek narzędzia talend etl pdf
Jeśli uważasz, że ten artykuł na temat „Java HashMap vs Hashtable” jest odpowiedni, zapoznaj się z zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.
Kurs ma na celu dać ci przewagę i przeszkolić Cię w zakresie podstawowych i zaawansowanych koncepcji języka Java, a także różnych jak Hibernate & Spring.
Jeśli napotkasz jakieś pytania, nie krępuj się zadawać je w sekcji komentarzy „Java HashMap vs Hashtable”, a nasz zespół z przyjemnością odpowie.