Јава ХасхМап цласс имплементира интерфејс Мап који нам омогућава за чување пара кључа и вредности , где кључеви треба да буду јединствени. Ако покушате да убаците дупликат кључа, он ће заменити елемент одговарајућег кључа. Лако је изводити операције користећи индекс кључа као што је ажурирање, брисање, итд. ХасхМап класа се налази ујава.утилпакет.
ХасхМап у Јави је попут старе класе Хасхтабле, али није синхронизован. Омогућава нам да складиштимо и нулте елементе, али би требало да постоји само један нул кључ. Од Јава 5 означава се каоХасхМап, где К означава кључ, а В вредност. Наслеђује класу АбстрацтМап и имплементира интерфејс Мап.
Тачке које треба запамтити
- Јава ХасхМап садржи вредности засноване на кључу.
- Јава ХасхМап садржи само јединствене кључеве.
- Јава ХасхМап може имати један нул кључ и више нул вредности.
- Јава ХасхМап није синхронизован.
- Јава ХасхМап не одржава ред.
- Почетни подразумевани капацитет Јава ХасхМап класе је 16 са фактором оптерећења од 0,75.
Хијерархија класе ХасхМап
Као што је приказано на горњој слици, класа ХасхМап проширује класу АбстрацтМап и имплементира интерфејс Мап.
Декларација класе ХасхМап
Хајде да видимо декларацију за класу јава.утил.ХасхМап.
јава архитектура
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
Параметри класе ХасхМап
Хајде да видимо параметре за класу јава.утил.ХасхМап.
Конструктори Јава ХасхМап класе
Цонструцтор | Опис |
---|---|
ХасхМап() | Користи се за конструисање подразумеваног ХасхМап-а. |
ХасхМап (Мапа м) | Користи се за иницијализацију хеш мапе коришћењем елемената датог објекта Мап м. |
ХасхМап (инт капацитет) | Користи се за иницијализацију капацитета хеш мапе на дату целобројну вредност, капацитет. |
ХасхМап(инт капацитет, флоат лоадФацтор) | Користи се за иницијализацију капацитета и фактора оптерећења хеш мапе коришћењем њених аргумената. |
Методе класе Јава ХасхМап
Метод | Опис |
---|---|
воид цлеар() | Користи се за уклањање свих мапирања са ове мапе. |
боолеан исЕмпти() | Користи се за враћање труе ако ова мапа не садржи пресликавања кључ/вредност. |
Објецт цлоне() | Користи се за враћање плитке копије ове ХасхМап инстанце: сами кључеви и вредности нису клонирани. |
Подесите ентриСет() | Користи се за враћање приказа колекције мапирања садржаних у овој мапи. |
Постави кеиСет() | Користи се за враћање скупа приказа кључева садржаних у овој мапи. |
В пут (кључ објекта, вредност објекта) | Користи се за уметање уноса у мапу. |
воид путАлл (мапа мапа) | Користи се за уметање наведене карте у мапу. |
В путИфАбсент(К кључ, В вредност) | Умеће наведену вредност са наведеним кључем у мапу само ако већ није наведена. |
В уклони (кључ објекта) | Користи се за брисање уноса за наведени кључ. |
боолеан ремове (кључ објекта, вредност објекта) | Он уклања наведене вредности са придруженим наведеним кључевима са мапе. |
В цомпуте (К кључ, БиФунцтион ремаппингФунцтион) | Користи се за израчунавање мапирања за наведени кључ и његову тренутну мапирану вредност (или нулл ако тренутно нема мапирања). |
В цомпутеИфАбсент(К кључ, Функција маппингФунцтион) | Користи се за израчунавање његове вредности помоћу дате функције мапирања, ако наведени кључ није већ повезан са вредношћу (или је мапиран на нулл), и уноси га у ову мапу осим ако је нулл. |
В цомпутеИфПресент(К кључ, БиФунцтион ремаппингФунцтион) | Користи се за израчунавање новог мапирања датог кључа и његове тренутне мапиране вредности ако је вредност за наведени кључ присутна и није нулта. |
боолеан цонтаинсВалуе(вредност објекта) | Овај метод враћа тачно ако нека вредност једнака тој вредности постоји унутар мапе, иначе враћа нетачно. |
боолеан цонтаинсКеи (кључ објекта) | Овај метод враћа труе ако неки кључ једнак кључу постоји унутар мапе, иначе враћа фалсе. |
боолеан једнако (објекат о) | Користи се за упоређивање наведеног објекта са мапом. |
воид форЕацх (акција БиЦонсумер) | Изводи дату радњу за сваки унос на мапи док се сви уноси не обрађују или док акција не изазове изузетак. |
В гет (кључ објекта) | Овај метод враћа објекат који садржи вредност придружену кључу. |
В гетОрДефаулт(кључ објекта, В дефаултВалуе) | Враћа вредност на коју је наведени кључ мапиран, или подразумевану вредност ако мапа не садржи мапирање за кључ. |
боолеан исЕмпти() | Овај метод враћа труе ако је мапа празна; враћа фалсе ако садржи бар један кључ. |
В спајање (К кључ, В вредност, БиФунцтион ремаппингФунцтион) | Ако наведени кључ није већ повезан са вредношћу или је повезан са нултом, придружује га датој вредности која није нулта. |
В замени (К кључ, В вредност) | Он замењује наведену вредност за одређени кључ. |
логички замена (К кључ, В стара вредност, В нова вредност) | Он замењује стару вредност новом вредношћу за наведени кључ. |
воид реплацеАлл (функција БиФунцтион) | Замењује вредност сваког уноса резултатом позивања дате функције на том уносу док се сви уноси не обрађују или док функција не избаци изузетак. |
Вредности колекције() | Враћа приказ колекције вредности садржаних у мапи. |
инт сизе() | Овај метод враћа број уноса на мапи. |
Јава ХасхМап Пример
Хајде да видимо једноставан пример ХасхМап-а за складиштење пара кључа и вредности.
import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Тестирајте одмах
Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes
У овом примеру, ми чувамо Интегер као кључ и Стринг као вредност, тако да користимоХасхМапкао тип. Тхеставити()метода убацује елементе у мапу.
Да бисмо добили елементе кључа и вредности, требало би да позовемо методе гетКеи() и гетВалуе(). ТхеМап.Ентриинтерфејс садржи гетКеи() и гетВалуе() методе. Али, требало би да позовемо методу ентриСет() интерфејса Мап да бисмо добили инстанцу Мап.Ентри.
Нема дупликата кључа на ХасхМап-у
Не можете да складиштите дупликате кључева у ХасхМап-у. Међутим, ако покушате да сачувате дупликат кључа са другом вредношћу, он ће заменити вредност.
import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Тестирајте одмах
Iterating Hashmap... 1 Grapes 2 Apple 3 Banana
Јава ХасхМап пример за адд() елементе
Овде видимо различите начине уметања елемената.
import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi
Јава ХасхМап пример за уклањање() елемената
Овде видимо различите начине уклањања елемената.
import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } }
Излаз:
Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav}
Јава ХасхМап пример за замену() елемената
Овде видимо различите начине замене елемената.
import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay
Разлика између ХасхСет-а и ХасхМап-а
ХасхСет садржи само вредности док ХасхМап садржи унос (кључ и вредност).
Јава ХасхМап Пример: књига
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }Тестирајте одмах
Излаз:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6
Повезане теме
Фактор оптерећења у ХасхМап-у
Рад ХасхМап-а у Јави | Како ХасхМап функционише
Разлика између ХасхМап-а и Хасхтабле-а
Како сортирати ХасхМап по вредности
Разлика између ХасхСет-а и ХасхМап-а
Разлика између ХасхМап-а и ТрееМап-а
субстринг_индек у скл