Тхе ХасхМап и ХасхСет у Јави су најпопуларније класе Цоллецтион. Оба се користе за структуру података. Следећа табела описује разлику између ХасхМап-а и ХасхСет-а:
Основа | ХасхМап | ХасхСет |
---|---|---|
Дефиниција | Јава ХасхМап је имплементација интерфејса Мапе заснована на хеш табели. | ХасхСет је скуп. Креира колекцију која користи хеш табелу за складиштење. |
Имплементација | ХасхМап имплементира Мапа, могућност клонирања и серијализација интерфејс ес. | ХасхСет имплементира Сет, Цлонеабле, Сериализабле, Итерабле и Цоллецтион интерфејси. |
Продавнице | У ХасхМап-у чувамо а пар кључ-вредност . Одржава мапирање кључа и вредности. | У ХасхСет-у чувамо објеката . |
Дуплициране вредности | Не дозвољава дупликати кључева , али дупле вредности су дозвољен . | Не дозвољава дупле вредности . |
Нулл вредности | Може да садржи а један нул кључ и више нултих вредности . | Може да садржи једну нулту вредност . |
Начин уметања | ХасхМап користи ставити() метод за додавање елемената у ХасхМап. | ХасхСет користи додати() метод за додавање елемената у ХасхСет. |
Перформансе | ХасхМап је брже/ него ХасхСет јер су вредности повезане са јединственим кључем. | ХасхСет је спорији него ХасхМап јер се објекат члан користи за израчунавање вредности хеш кода, који може бити исти за два објекта. |
Број објеката | Само један објекат се креира током операције додавања. | Постоје два објекти настали током операције стављања, један за кључ и један за вредност . |
Механизам складиштења | ХасхМап интерно користи хеширање за складиштење предмета. | ХасхСет интерно користи а ХасхМап објекат за складиштење објеката. |
Користи | Увек преферирамо када не одржавамо јединственост . | Користи се када треба да одржавамо јединственост података. |
Пример | {а->4, б->9, ц->5} Где а, б, ц су кључеви и 4, 9, 5 су вредности повезан са кључем. | {6, 43, 2, 90, 4} Означава скуп. |
Хајде да разумемо разлике кроз програме.
Пример ХасхМап-а
У следећем примеру, када додамо дупликат елемента са истим кључем и различитом вредношћу, претходна вредност кључа се замењује новом вредношћу.
Када додамо дупликат елемента са истим кључем и истом вредношћу, тада се пар кључ-вредност не чува други пут.
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); } }
Излаз:
Пример ХасхСет-а
У следећем примеру можемо видети да се дуплиране вредности не чувају у ХасхСет-у и да се нулта вредност чува само једном.
гимп заменити боју
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); } }
Излаз: