what is java hashtable hashtable implementation example
Овај водич објашњава шта је Јава ХасхТабле, конструктори и методе класе Хасхтабле, имплементација и Хасхтабле у односу на Хасхмап:
Шта је ХасхТабле?
Хасхтабле у Јави је низ елемената који су листе. Свака од ових листа означена је као а канта .
Кључеве мапира у вредности. У Јави, хеш табелу имплементира класа „ХасхТабле“. Ова класа имплементира интерфејс мапе и наслеђује класу речника.
=> Овде погледајте савршен водич за обуку за Јава.
Неке јединствене карактеристике Хасхтабле-а у Јави су следеће:
- То је низ који као своје елементе садржи листе или сегменте.
- Има јединствене елементе.
- У Хасхтабле-у нема нулл кључа или нулл вредности.
- Сличан је Хасхмапу, али је синхронизован.
Шта ћете научити:
ХасхТабле класа у Јави
У Јави је ова класа члан пакета јава.утил. Стога у наш програм морамо укључити једну од следећих изјава да бисмо укључили функционалност класе ХасхТабле.
импорт јава.утил. *;
ИЛИ
импорт јава.утил.ХасхТабле;
Општа декларација класе за класу јава.утил.ХасхТабле дата је у наставку:
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Ево,
- К => тип кључева ХасхТабле-а
- В => врста мапираних вредности
АПИ класе ХасхТабле састоји се од конструктора који се користе за конструкцију објеката класе и различитих операција или метода које су део класе што доводи до несметаног функционисања класе ХасхТабле.
Конструктори класе ХасхТабле
Прототип конструктора | Опис | |
---|---|---|
Комплет | Комплет | Враћа постављени приказ мапирања садржаних на мапи. |
Хасхтабле () | Подразумевани конструктор: креира објекат класе ХасхТабле са почетним подразумеваним капацитетом и фактором оптерећења. | |
Табела табела (инт капацитет) | Креира хеш табелу са наведеним почетним капацитетом. | |
Табела протока (интерни капацитет, фактор плутајућег оптерећења) | Ствара објект хеш табеле са почетним капацитетом = капацитетом и фактором оптерећења = лоадФацтор. | |
Хасхтабле (мапа т) | Ствара нову хасхТабле из дате мапе назначене као аргумент. |
Методе класе ХасхТабле
Метод | Прототип методе | Опис |
---|---|---|
јасно | воид цлеар () | Брише ХасхТабле ресетовањем вредности. |
клон | Клон објекта () | Прави плитку копију објекта ХасхТабле и враћа га. |
рачунати | В израчунавање (К тастер, БиФунцтион ремаппингФунцтион) | Израчунава мапирање између датог кључа и вредности помоћу функције поновног мапирања. |
цомпутеИфАбсент | В цомпутеИфАбсент (тастер К, пресликавање функција Функција) | Израчунава мапирање између датог кључа и вредности помоћу функције поновног мапирања ако наведени кључ већ није повезан са датом вредношћу. |
цомпутеИфПресент | В цомпутеИфПресент (тастер К, БиФунцтион ремаппингФунцтион) | Ако је дати кључ присутан, функција поновног мапирања користи се за израчунавање новог мапирања између датог кључа и вредности. |
елементи | Елементи набрајања () | Враћа набрајање вредности у хеш табели. |
једнако | боолеан једнако (Објект о) | Поређује дати објекат са ХасхТабле-ом. |
за сваки | воид форЕацх (акција БиЦонсумер) | Дата акција се изводи за сваки од елемената ХасхТабле све док се сви елементи не исцрпе. |
гетОрДефаулт | В гетОрДефаулт (Објецт кеи, В дефаултВалуе) | Враћа вриједност на коју се мапира наведени кључ или дефаултВалуе ако мапа не садржи мапирање за кључ. |
хасхЦоде | инт хасхЦоде () | Враћа хеш код ХасхТабле-а. |
кључеви | Кључеви за набрајање () | Враћа кључеве у ХасхТабле-у као набрајање. |
кеиСет | Постави кеиСет () | Враћа скуп тастера (кључеви у комплету) за расправну таблицу. |
иди | Спајање В (кључ К, В вредност, БиФунцтион ремаппингФунцтион) | Мапира дати кључ са не-нулл вредношћу помоћу функције пресликавања ако кључ већ није присутан или је нулл. |
ставити | В пут (кључ К, вредност В) | У ХасхТабле убацује нови пар кључ / вредност. |
Стави све | воид путАлл (мапа т)) | Ставља или копира парове кључ / вредност дате мапе у ХасхТабле. |
путИфАбсент | В путИфАбсент (К кључ, В вредност) | Придружује дати кључ нулл вредности ако кључ већ није присутан или је повезан са нулл. |
уклонити | логичко уклањање (кључ објекта, вредност објекта) | Брише дати пар кључ / вредност из табеле ХасхТабле. |
заменити | В замена (тастер К, вредност В) | Вредност датог кључа замењује наведеном вредношћу. |
заменити | логичка замена (тастер К, В олдВалуе, В невВалуе) | Замењује стару вредност датог кључа новом. |
замените | воид реплацеАлл (функција БиФунцтион) | Сви уноси у ХасхТабле замењују се вредношћу која се добија проценом дате функције. |
тоСтринг | Стринг тоСтринг () | Конвертује објект ХасхТабле у његову представљање низа. |
вредности | Вредности колекције () | Враћа вредности у ХасхТабле-у као колекцију. |
садржи | боолеан садржи (вредност објекта) | Проверава да ли је дата вредност присутна у ХасхТабле-у. Враћа труе ако је пресент елсе враћа фалсе. |
садржи вредност | боолеан цонтаинсВалуе (вредност објекта) | Проверава да ли у ХасхТабле-у постоји вредност једнака датој вредности и враћа вредност труе. |
цонтаинсКеи | боолеан цонтаинсКеи (Објецт кеи) | Проверава да ли постоји било који кључ једнак датом кључу у ХасхТабле-у и враћа труе ако да. |
Празно | боолеан исЕмпти () | Проверава да ли је дата ХасхТабле празна и враћа труе ако да. |
рехасх | заштићено воид рехасх () | Користи се за повећање величине хеш табеле и поновно уклапање свих његових кључева. |
добити | В гет (Објецт кеи) | Дохваћа вредност за дати кључ. |
уклонити | В уклони (тастер објекта) | Брише задати кључ и вредност и враћа ову вредност. |
величина | инт величина () | Враћа величину или број елемената присутних у ХасхТабле-у. |
Примена ХасхТабле-а
Доље је дата примена класе у Јави. Овде смо демонстрирали све важне методе које пружа разред.
како отворити бин датотеке на андроид-у
import java.util.*; class Main{ public static void main(String args()){ //create a Hashtable and initiliaze it Hashtable hash_tab=new Hashtable (); hash_tab.put(100,'Red'); hash_tab.put(101,'Green'); hash_tab.put(104,'Blue'); hash_tab.put(102,'Orange'); hash_tab.put(103,'Brown'); //obtain entrySet for the Hashtable and print the elments System.out.println('The contents of Hashtable:'); for(Map.Entry m:hash_tab.entrySet()){ System.out.println(m.getKey()+' : '+m.getValue()); } //getOrDefault operation => get the value at given key or output default message System.out.println('Hashtable Value at 101: ' + hash_tab.getOrDefault(101, 'Value Not Found')); System.out.println('Hashtable Value at 105: ' +hash_tab.getOrDefault(105, 'Value Not Found')); //remove operation => delete value at given key hash_tab.remove(102); System.out.println('After remove(102), the Hash Table: '+ hash_tab); //putIfAbsent operation=>update the key-value pair in table if absent hash_tab.putIfAbsent(102,'Orange'); System.out.println('Updated Hash Table: '+hash_tab); } }
Излаз:
Садржај Хасхтабле-а:
104: плава
103: Браон
102: Наранџаста
101: Зелено
100: Мрежа
Вредност Хасхтабле-а на 101: зелена
Хасхтабле вредност на 105: Вредност није пронађена
Након уклањања (102), табела хеширања: {104 = плава, 103 = браон, 101 = зелена, 100 = црвена}
Ажурирана табела хеширања: {104 = плава, 103 = смеђа, 102 = наранџаста, 101 = зелена, 100 = црвена}
Пример ХасхТабле Јава
У овом програму дефинишемо хешблеб са кључевима као имена власника рачуна са њиховим односима на рачуну као вредностима. Прво долазимо до кључева из ХасхТабле-а као набрајање. Затим помоћу овог набрајања исписујемо парове кључ / вредност из табеле ХасхТабле.
Касније ажурирамо стање на рачуну једног од власника и исписујемо ажурирани износ.
Програм дат у наставку приказује ову примену.
import java.util.*; public class Main { public static void main(String args()) { // Create a Hashtable of account balance Hashtable acc_balance = new Hashtable(); Enumeration person_names; String name_str; double balance; //initialize the Hashtable acc_balance.put('Lily', new Double(4367.34)); acc_balance.put('Ben', new Double(95.43)); acc_balance.put('Lacy', new Double(1200.00)); acc_balance.put('Dillon', new Double(499.22)); acc_balance.put('James', new Double(78.48)); // retrieve the keys of the Hashtable person_names = acc_balance.keys(); System.out.println('The account balance Hashtable:'); System.out.println(' KEY VALUE '); //print the contents of Hashtable while(person_names.hasMoreElements()) { name_str = (String) person_names.nextElement(); System.out.println(' ' + name_str + ' ' + acc_balance.get(name_str)); } System.out.println(); // Update Ben's Account by adding 1000 to it. balance = ((Double)acc_balance.get('Ben')).doubleValue(); acc_balance.put('Ben', new Double(balance + 1000)); //print the contents of updated account System.out.println('Ben's new Account balance: ' + acc_balance.get('Ben')); } }
Излаз:
Табела стања рачуна на рачуну:
КЉУЧНА ВРЕДНОСТ
Јаков 78.48
Бен 95.43
Диллон 499.22
Лили 4367.34
Лаци 1200.0
Беново ново стање на рачуну: 1095,43
Хасхтабле Вс Хасхмап
ХасхТабле | ХасхМап |
---|---|
ХасхТабле се споро извршава. | ХасхМап је бржи. |
Наслеђује час речника. | Наслеђује класу АбстрацтМап. |
Је наслеђена класа. | Класа ХасхМап представљена у ЈДК 1.2 |
Синхронизовано и без нити. | Несинхронизовано и сигурно без нити. |
Синхронизован је интерно и не може се поништити. | Може се синхронизовати методом Цоллецтионс.синцхронизедМап. |
Није дозвољен нулл кључ / вредност. | Омогућава нулл кључ и више нулл вредности. |
Може се прећи помоћу Енумератора и Итератора. | Може се прећи само користећи Итератор. |
Често постављана питања
П # 1) Шта је Хасхтабле у Јави?
Одговор: То је стара класа која наслеђује класу „речник“ и чува парове кључ / вредност.
К # 2) Зашто се користи Хасхтабле?
Одговор: Користи се за чување парова кључ / вредност. Дакле, када треба да сачувамо парове кључ / вредност у табеларном формату, идемо на ХасхТабле. Друго, може да меморише више вредности за исти кључ помоћу сегмената. Преузимање података је ефикасно у ХасхТаблес-у.
К # 3)Како се креира табела Хасхтабле у Јави?
Одговор: Можете га креирати инстанцирањем објекта класе јава.утил.ХасхТабле.
HashTable hashTable = new HashTable();
Горња изјава креира таблицу хеш-назива под називом „хасхТабле“ са кључевима и вредностима типа Стринг.
К # 4) Да ли је Хасхтабле нит сигуран?
Одговор: Да, сигуран је у нитима. У случају да безбедност нити није потребна, онда се можемо одлучити за ХасхМап.
К # 5) Како Хасхтабле интерно ради на Јави са примером?
Одговор: Интерно чува парове кључ / вредност у структури која се назива сегменти. Положај сегмента одређује хасхЦоде кључа. Хасх функција добија локацију сегмента помоћу хасхЦоде-а кључа.
Закључак
ХасхТабле се састоји од података ускладиштених у облику парова кључ / вредност. Кључеви или вредности не могу бити нуле. У Јави се имплементира помоћу класе ХасхТабле.
недефинисана референца на ц ++
Видели смо конструкторе и методе које пружа класа ХасхТабле заједно са имплементацијом ХасхТабле у Јава језику.
У нашем предстојећем упутству разговараћемо о колекцији ХасхМап.
=> Посетите овде за ексклузивну серију лекција за Јава тренинг.
Препоручено читање
- Водич за Јава рефлексију са примерима
- Водич за класу Јава Сцаннер са примерима
- Основе Јава-а: Јава синтакса, Јава Цласс и основни Јава концепти
- Шта је Јава Вецтор | Водич за Јава векторску класу са примерима
- Јава СВИНГ лекције: Контејнери, компоненте и руковање догађајима
- Јава Арраи Цласс Туториал - јава.утил.Арраис Цласс са примерима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Јава Стринг садржи () Водич за методе са примерима