Kluczowa różnica: W informatyce hashTable lub hashMap odnosi się do struktury danych, która łączy klucze (nazwy) z wartościami (atrybutami). W Javie istnieją pewne ważne różnice między tymi dwoma, jak: HashTable jest zsynchronizowane, a HashMap niezsynchronizowane. A HashTable nie zezwala na puste klucze. Jednak HashMap pozwala na pojedynczy pusty klucz i dowolną liczbę zerowych wartości.
HashMap i hashTable są strukturami danych, które są częścią kolekcji Java. Używają par klucz-wartość do przechowywania obiektów. Oba mają pewne podobieństwa, na przykład oba implementują interfejs java.util.Map i obie działają na zasadzie mieszania. Jednakże, gdy odnosimy się do nich w kontekście języka programowania Java, istnieje wiele różnic między nimi.
HashhTable służy do przechowywania i pobierania wartości za pomocą klucza. W tym celu klucz musi być unikalny. Tabela używana do przechowywania par klucz i wartość jest znana jako tablica asocjacyjna. Tablica skrótów jest tworzona za pomocą algorytmu, który miesza klucze. Ta funkcja hash używana jest do przypisywania liczb do danych wejściowych, a następnie dane są przechowywane jako indeks tablicy, który odpowiada obliczonej lub ocenianej liczbie.
Porównanie HashMap i HashTable:
HashMap | HashTable | |
Synchronizacja | Jest niezsynchronizowany | Jest zsynchronizowany (bezpieczny dla wątków) |
Wartości zerowe | Pozwala wartości null jako klucz i wartość | Nie pozwala na wartości zerowe |
Wprowadzenie do języka Java | Wersja Java 1.2 | Pierwsza wersja zestawu rozwojowego java |
Wydajność | Stosunkowo lepiej | Stosunkowo słabe |
Wydłuża się | Rozszerza klasę AbstractMap | Rozszerza klasę Dictionary, która jest dość stara |
Iteracja kluczy | Iterator służy do iteracji kluczy | Interfejs do obliczeń służy do powtarzania kluczy |
Aplikacje | Lepsze dla aplikacji bez gwintu | Zasadniczo bezpieczny dla aplikacji wielowątkowych |
Serializacja | Bez serializacji | Serializowane |
Alternatywny | Można użyć współbieżnej mapy dla środowiska wielowątkowego | Nie ma takiej alternatywy |