Különbségek a HashMap és a TreeMap között

A HashMap a Java gyűjteményének része. Ez biztosítja a Java Map Interface alapvető megvalósítását. Az adatokat (kulcs, érték) párokban tárolják. Az érték eléréséhez meg kell tudnia a kulcsát. A HashMap HashMap néven ismert, mert a Hashing technikát használja. A TreeMap a Térkép interfész és a Navigálható térkép megvalósításához használható az Absztrakt osztályhoz. A térképet a kulcsok természetes sorrendje szerint, vagy a térkép létrehozásakor megadott összehasonlító szerint rendezik, attól függően, hogy melyik konstruktort használják.

Hasonlóságok a HashMap és a TreeMap között

A különbségeken kívül a következő hasonlóságok vannak a hashmap és a fatérkép között:

  • Mind a HashMap, mind a TreeMap osztályok soroztatható és klónozható interfészeket valósítanak meg.
  • A HashMap és a TreeMap kiterjesztik az AbstractMap osztályt.
  • Mind a HashMap, mind a TreeMap osztály kulcs-érték páron működik.
  • Mind a HashMap, mind a TreeMap nem szinkronizált gyűjtemények.
  • Mind a HashMap, mind a TreeMap nem képesek gyors gyűjteményekre.

Mindkét megvalósítás a gyűjtési keret része, és az adatokat kulcs-érték párokban tárolja.

Java program a HashMap és a TreeMap megjelenítésére

Itt van egy java program, amely bemutatja, hogy az elemeket hogyan helyezzék el és nyerik ki a hashmapból:

package com.edubca.map;
import java.util.*;
class HashMapDemo
(
// This function prints frequencies of all elements
static void printFrequency(int arr())
(
// Create an empty HashMap
HashMap hashmap =
new HashMap ();
// Iterate through the given array
for (int i = 0; i < arr.length; i++)
(
Integer value = hashmap.get(arr(i));
// If first occurrence of the element
if (hashmap.get(arr(i)) == null)
hashmap.put(arr(i), 1);
// If elements already present in hash map
else
hashmap.put(arr(i), ++value);
)
// Print result
for (Map.Entry m:hashmap.entrySet())
System.out.println("Frequency of " + m.getKey() +
" is " + m.getValue());
)
// Main method to test the above method
public static void main (String() args)
(
int arr() = (10, 40, 5, 12, 5, 7, 10);
printFrequency(arr);
)
)

Kimenet:

A kimeneti adatok alapján egyértelmű, hogy a hashmap nem tart fenn rendet. Itt egy java program, amely bemutatja, hogy az elemeket hogyan helyezzék el és töltsék le a fatérképből.

Kód:

package com.edubca.map;
import java.util.*;
class TreeMapDemo
(
// This function prints frequencies of all elements
static void printFrequency(int arr())
(
// Create an empty HashMap
TreeMap treemap =
new TreeMap ();
// Iterate through the given array
for (int i = 0; i < arr.length; i++)
(
Integer value = treemap.get(arr(i));
// If first occurrence of element
if (treemap.get(arr(i)) == null)
treemap.put(arr(i), 1);
// If elements already present in hash map
else
treemap.put(arr(i), ++value);
)
// Print result
for (Map.Entry m: treemap.entrySet())
System.out.println("Frequency of " + m.getKey() +
" is " + m.getValue());
)
// Main method to test above method
public static void main (String() args)
(
int arr() = (10, 40, 5, 12, 5, 7, 10);
printFrequency(arr);
)
)

Kimenet:

A kimenet alapján megfigyelhető, hogy a kulcsok természetes sorrendben vannak rendezve. Ezért a Treemap fenntartja a rendezett sorrendet.

Head-to-Head különbségek a HashMap és a TreeMap (Infographics) között

Az alábbiakban bemutatjuk a legfontosabb különbségeket a HashMap és a TreeMap között

A HashMap és a TreeMap legfontosabb különbsége

Az alábbiakban a kulcs-különbség HashMap és TreeMap pontjai találhatók:

1. Felépítés és végrehajtás

A Hash Map egy kivonatos táblákon alapuló megvalósítás. Bővíti az Absztrakt Térkép osztályt és megvalósítja a Térkép felületet. A has-térkép a kivágás elvén működik. A Térkép megvalósítása kibontott kivonat-táblázatként működik, de ha a vödrök túl nagyok, fa csomópontokká alakulnak át, mindegyik hasonló szerkezetű, mint a TreeMap csomópontjai. A TreeMap kiterjeszti az Absztrakt Térkép osztályt és megvalósítja a Navigálható térkép felületet. A fatérkép mögöttes adatszerkezete egy vörös-fekete fa.

2. Iratációs sorrend

A hasítótérkép ismétlési sorrendje nincs meghatározva, míg a TreeMap elemei természetes sorrendben vagy egy összehasonlító segítségével megadott egyedi sorrendben vannak rendezve.

3. Teljesítmény

Mivel a Hashmap egy kiváló alapú megvalósítás, az állandó működési időt nyújt, amely megegyezik az O (1) értékkel a legtöbb általános művelet során. Egy elemnek a hash-térképen való kereséséhez szükséges idő O (1). De ha a hashmapban nincs helyes végrehajtás, akkor ez további memóriaterhelést és a teljesítmény romlását eredményezheti. Másrészt a TreeMap O teljesítményt nyújt (log (n)). Mivel a hashmap hashtable alapú, folytonos memóriatartományt igényel, míg a fatérkép csak az elemek tárolásához szükséges memória mennyiségét használja. Ennélfogva a HashMap sokkal időhatékonyabb, mint a fatérkép, de a fatérképe hatékonyabb a térhatékonyság, mint a HashMap.

4. Nulla kezelés

A HashMap szinte egyetlen null kulcsot és sok null értéket tesz lehetővé, míg a fatérképben a null nem használható kulcsként, bár a null értékek megengedettek. Ha a null kulcsként szerepel a hashmapban, akkor a null mutató kivételét fogja dobni, mivel belső részében az Összehasonlítás vagy az Összehasonlítás módszert használja az elemek rendezéséhez.

A táblázat összehasonlítása

Itt található egy összehasonlító táblázat, amely bemutatja a hashmap és a fatérkép közötti különbségeket:

Az összehasonlítás alapjaHashMapTreemap
SzintaxisA nyilvános osztályú HashMap kiterjeszti az AbstractMap eszközöket a Map, Cloneable, Serializable és MapS eszközökreA nyilvános osztályú TreeMap kiterjeszti az AbstractMap implementációs eszközöket, NonavibleMap, Cloneable, Serializable
RendelésA HashMap nem ad megrendelést az elemekhez.Az elemeket természetes vagy testreszabott sorrendben rendezzük el.
SebességGyorsLassú
Null kulcsok és értékekSzinte egy kulcsot lehetővé tesz null és több null értékként.Nem engedélyezi a null kulcsot, de több null értéket is engedélyez.
MemóriafelhasználásA HashMap több memóriát fogyaszt az alapul szolgáló Hash Table miatt.Kevesebb memóriát fogyaszt a HashMap-hez képest.
funkcionalitásCsak alapvető szolgáltatásokat nyújtGazdagabb tulajdonságokkal rendelkezik.
Az alkalmazott összehasonlítási módszerAlapvetően az equals () metódust használja a kulcsok összehasonlításához.Az összehasonlítás () vagy az összehasonlítás () módszerét használja a kulcsok összehasonlításához.
Interfész megvalósítvaTérkép, sorolandó és klónozhatóNavigálható térkép, sorozható és klónozható
TeljesítményO (1) teljesítményt ad.Biztosítja az O teljesítményét (log n)
Az adatok felépítéseA hash táblát adatszerkezetként használja.A Red-Black Tree felhasználását használja az adatok tárolására.
Homogén és heterogén elemekEz lehetővé teszi a homogén és heterogén elemeket is, mivel nem végez válogatást.Csak a homogén elemeket teszi lehetővé, mivel válogatást hajtanak végre.
Használjon tokotHasználjuk, amikor nem igényelünk kulcs-érték párokat rendezett sorrendben.Akkor használják, amikor a térkép kulcs-érték párját rendezni kell.

Következtetés

A cikkből arra a következtetésre jutunk, hogy a hashmap a Map felület általános célú megvalósítása. O (1) teljesítményt nyújt, míg a Treemap O (log (n)) teljesítményét nyújtja. Ezért a HashMap általában gyorsabb, mint a TreeMap.

Ajánlott cikkek

Ez egy útmutató a HashMap vs TreeMap oldalhoz. Itt tárgyaljuk a HashMap vs TreeMap bevezetését, a Hashmap és a Treemap közötti különbségeket és az összehasonlító táblázatot. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. WebLogic vs JBoss
  2. Lista vs készlet
  3. Git Fetch vs Git Pull
  4. Kafka vs Spark | Legfontosabb különbségek
  5. A Kafka és a Kinesis öt legfontosabb különbsége

Kategória: