logo

A HashSet és a HashMap osztály közötti különbség a Java nyelven

A HashMap és HashSet Java nyelven a legnépszerűbb Collection osztályok. Mindkettőt az adatszerkezethez használják. Az alábbi táblázat a HashMap és a HashSet közötti különbséget írja le:

Alap HashMap HashSet
Meghatározás A Java HashMap a Map interfész hash tábla alapú megvalósítása. A HashSet egy készlet. Létrehoz egy gyűjteményt, amely egy hash táblát használ a tároláshoz.
Végrehajtás HashMap eszközök Térkép, klónozható és szerializálható interfész es. HashSet eszközök Beállítás, klónozható, sorozható, iterálható és Gyűjtemény interfészek.
Üzletek A HashMapben tároljuk a kulcs-érték pár . Fenntartja a kulcs és az érték leképezését. A HashSetben tároljuk tárgyakat .
Ismétlődő értékek Nem engedi duplikált kulcsok , de duplikált értékek vannak megengedett . Nem engedi duplikált értékek .
Null értékek Tartalmazhat a egyetlen null kulcs és több null érték . Tartalmazhat egyetlen null érték .
A beillesztés módja A HashMap a tesz() módszert az elemek hozzáadásához a HashMapben. A HashSet a add() módszer elemek hozzáadásához a HashSetben.
Teljesítmény A HashMap az gyorsabb/ mint a HashSet, mert az értékek egyedi kulccsal vannak társítva. A HashSet az lassabb mint a HashMap, mert a tagobjektumot a hashcode érték kiszámítására használják, ami két objektumnál azonos lehet.
Az objektumok száma Csak egy objektum jön létre a hozzáadási művelet során. Vannak kettő put művelet során létrehozott objektumok, egy a kulcs egy pedig azért érték .
Tárolási mechanizmus A HashMap belsőleg használható kivonatolás tárgyak tárolására. A HashSet belsőleg a HashMap objektum tárgyak tárolására.
Felhasználások Mindig előnyben részesítjük, ha nem karbantartjuk a egyediség . Akkor használjuk, ha karban kell tartanunk a egyediség adatokról.
Példa {a->4, b->9, c->5} Ahol a, b, c vannak kulcsok és 4, 9, 5 vannak értékeket kulcshoz kapcsolódik. {6, 43, 2, 90, 4} Egy halmazt jelöl.

Értsük meg a különbségeket a programokon keresztül.

Példa a HashMap-re

A következő példában, ha ugyanazzal a kulccsal és eltérő értékű ismétlődő elemet adunk hozzá, akkor a kulcs korábbi értéke lecserélődik az új értékre.

k-nn algoritmus

Ha ugyanazzal a kulccsal és azonos értékű duplikált elemet adunk hozzá, akkor a kulcs-érték pár nem tárol másodszor.

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

Kimenet:

A HashSet és a HashMap osztály közötti különbség a Java nyelven

Példa a HashSetre

A következő példában láthatjuk, hogy a duplikált értékek nem tárolódnak a HashSetben, és a null érték csak egyszer tárolódik.

logikai érték a karakterláncra
 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

Kimenet:

A HashSet és a HashMap osztály közötti különbség a Java nyelven