The HashMap un HashSet Java ir populārākās kolekcijas klases. Abas tiek izmantotas datu struktūrai. Šajā tabulā ir aprakstīta atšķirība starp HashMap un HashSet:
Pamats | HashMap | HashSet |
---|---|---|
Definīcija | Java HashMap ir uz hash tabulu balstīta kartes interfeisa ieviešana. | HashSet ir komplekts. Tas izveido kolekciju, kurā glabāšanai tiek izmantota hash tabula. |
Īstenošana | HashMap iekārtas Karte, klonējama un serializējama interfeiss es. | HashSet agregāti Komplekts, klonējams, serializējams, atkārtojams un Kolekcija saskarnes. |
Veikali | HashMap mēs uzglabājam a atslēgas-vērtības pāris . Tas uztur atslēgas un vērtības kartēšanu. | HashSet mēs uzglabājam objektus . |
Dublētas vērtības | Tas neļauj dublētās atslēgas , bet dublētās vērtības ir atļauts . | Tas neļauj dublētās vērtības . |
Null vērtības | Tas var saturēt a viena nulles atslēga un vairākas nulles vērtības . | Tas var saturēt viena nulles vērtība . |
Ievietošanas metode | HashMap izmanto likt () metode, lai pievienotu elementus HashMap. | HashSet izmanto pievienot () metode elementu pievienošanai HashSet. |
Performance | HashMap ir ātrāk/ nekā HashSet, jo vērtības ir saistītas ar unikālu atslēgu. | HashSet ir lēnāk nekā HashMap, jo dalības objekts tiek izmantots hashcode vērtības aprēķināšanai, kas var būt vienāda diviem objektiem. |
Objektu skaits | Tikai viens objekts tiek izveidots pievienošanas darbības laikā. | Tur ir divi objektus, kas izveidoti put darbības laikā, viens priekš taustiņu un viens par vērtību . |
Uzglabāšanas mehānisms | HashMap iekšēji izmanto jaukšana objektu uzglabāšanai. | HashSet iekšēji izmanto a HashMap objekts objektu uzglabāšanai. |
Lietojumi | Vienmēr dod priekšroku, ja mēs neuzturam unikalitāte . | To izmanto, ja mums ir nepieciešams uzturēt unikalitāte no datiem. |
Piemērs | {a->4, b->9, c->5} Kur a, b, c ir atslēgas un 4, 9, 5 ir vērtības saistīta ar atslēgu. | {6, 43, 2, 90, 4} Tas apzīmē komplektu. |
Sapratīsim atšķirības, izmantojot programmas.
HashMap piemērs
Nākamajā piemērā, pievienojot dublikātu ar tādu pašu atslēgu un atšķirīgu vērtību, atslēgas iepriekšējā vērtība tiek aizstāta ar jauno vērtību.
Ja pievienojam elementa dublikātu ar tādu pašu atslēgu un tādu pašu vērtību, atslēgas-vērtības pāris netiek saglabāts otro reizi.
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); } }
Izvade:
reliģiju saraksts
HashSet piemērs
Nākamajā piemērā mēs varam redzēt, ka dublikātu vērtības netiek saglabātas HashSet un nulles vērtība tiek saglabāta tikai vienu reizi.
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); } }
Izvade: