linkedhashmap java linkedhashmap example implementation
Овај водич објашњава све о ЛинкедХасхМап у Јави, укључујући примере и методе ЛинкедХасхМап, имплементацију у Јави, ЛинкедХасхМап вс ХасхМап:
ЛинкедХасхМап у Јави је имплементација која комбинује имплементацију ХасхТабле и ЛинкедЛист. Примењује интерфејс Мап. Парови кључ / вредност ЛинкедХасхМап имају предвидљив редослед итерација.
Поред интерфејса Мап, ЛинкедХасхМап такође проширује класу ХасхМап.
=> Посетите овде да бисте видели серију Јава обуке за све.
који је најбољи ДВД риппер
Шта ћете научити:
ЛинкедХасхМап у Јави
Неке од главних карактеристика ЛинкедХасхМап-а су:
- Садржи вредности засноване на кључу.
- Одржава редослед уметања парова кључ / вредност.
- Не дозвољава дупликате, има јединствене елементе.
- Може имати један нулл кључ. Али омогућава вишеструке нулл вредности.
- Јава ЛинкедХасхМап није синхронизован.
Изјава о ЛинкедХасхМап
Класа ЛинкедХасхМап у Јави је део пакета јава.утил.
Општа декларација ове класе у Јави је следећа:
public class LinkedHashMap extends HashMap implements Map
Овде је К => тип кључева на мапи.
В => врста вредности пресликаних у кључеве.
Хијерархија класа ЛинкедХасхМап је приказана испод:
Као што је приказано на горњем дијаграму, ЛинкедХасхМап наслеђује класу ХасхМап и АбстрацтМап и примењује интерфејс Мап.
Пример ЛинкедХасхМап
Доље дат је једноставан пример.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Излаз:
Садржај ЛинкедХасхМап:
1 ЈЕДАН
2 ДВА
3 ТРИ
4 ЧЕТИРИ
5 ПЕТ
Конструктори и методе
Разговарајмо о конструкторима и методама које пружа класа ЛинкедХасхМап. Прво ћемо разговарати о конструкторима праћеним методама.
Конструктори
Прототип конструктора | Опис | |
---|---|---|
кеиСет | Постави кеиСет () | Враћа скуп кључева на мапи. |
ЛинкедХасхМап () | Подразумевани конструктор за ЛинкедХасхМап. | |
ЛинкедХасхМап (инт капацитет) | Ствара ЛинкедХасхМап објекат са задатим капацитетом. | |
ЛинкедХасхМап (инт капацитет, флоат лоадФацтор) | Ствара ЛинкедХасхМап објекат са задатим капацитетом и лоадФацтор. | |
ЛинкедХасхМап (инт капацитет, флоат лоадФацтор, боолеан аццессОрдер) | Ствара ЛинкедХасхМап објекат са задатим капацитетом и лоадФацтор. Такође је наведен начин наручивања (аццессОрдер). | |
ЛинкедХасхМап (мапа м) | Ствара објект ЛинкедХасхМап и иницијализује га вредностима са мапе м прослеђених као аргумент. |
Методе
Метод | Прототип методе | Опис |
---|---|---|
добити | В гет (Објецт кеи) | Враћа вредност за дати кључ. |
јасно | воид цлеар () | Брише све парове кључ / вредност на мапи. |
цонтаинсВалуе | боолеан цонтаинсВалуе (вредност објекта) | Проверава да ли карта садржи један или више кључева пресликаних на дату вредност. Враћа тачно ако је одговор да. |
ентриСет | Комплет | Враћа скуп уноса на мапи. |
за сваки | воид форЕацх (акција БиЦонсумер) | Извршава задату радњу за све уносе на мапи. |
гетОрДефаулт | В гетОрДефаулт (Објецт кеи, В дефаултВалуе) | Враћа вредност мапирану у кључ. Ако се не преслика ниједна вриједност, враћа се задана вриједност. |
ремовеЕлдестЕнтри | заштићени логички облик ремовеЕлдестЕнтри (Мап.Ентри најстарији) | Уклања најстарији унос на мапи и враћа истину приликом уклањања. |
замените | воид реплацеАлл (функција БиФунцтион) | Призива задану функцију на сваком уносу и замењује резултат функције вредностима. |
вредности | Вредности колекције () | Враћа збирку вредности на мапи. |
Имплементација у Јави
Јава програм у наставку приказује имплементацију ЛинкедХасхМап демонстрирајући горе разматране методе.
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Излаз:
Оригинал ЛинкедХасхМап: {један = црвени, два = зелени, три = плави}
ЛинкедХасхМап ‘цолорс_мап’ празан?: Фалсе
Величина мапе: 3
Вредност за кључ = „један“: црвена
мапа_ боја садржи кључ = ‘два’: тачно
мапа_ боја садржи вредност ‘рее’: фалсе
избрисати елемент „један“: црвени
Ажурирана мапа_ боја: {две = зелена, три = плава}
У овом програму декларишемо мапу боја и иницијализујемо је. Тада користимо различите методе о којима смо претходно говорили да бисмо добили резултате.
ЛинкедХасхМап вс ХасхМап
ЛинкедХасхМап | ХасхМап | ||
---|---|---|---|
Временска сложеност основних операција | О (1) | О (1) | О (1) |
Проводи уређене мапе. | Примењује неуређене мапе. | ||
Користи двоструко повезану листу сегмената. | Користи хеш табелу. | ||
Одржава ред приликом понављања елемената. | Не одржава редослед приликом понављања. | ||
Захтева више меморије. | Захтева мање меморије од ЛинкедХасхМап. | ||
Основне операције попут додавања, уклањања, претраживања итд. Су спорије. | Основне операције попут додавања, уклањања претраживања су брже. |
ХасхМап Вс ТрееМап Вс ЛинкедХасхМап
Упоредимо сада три имплементације мапе, наиме. ХасхМап, ТрееМап и ЛинкедХасхМап.
како отворити .кмл датотеке
Следећа табела приказује поређење / разлику.
Параметар поређења | ХасхМап | ЛинкедХасхМап | ТрееМап |
---|---|---|---|
Интерфејс | Мапа | Мапа | Мап, СортедМап, НавигаблеМап |
Структура података | Списак кашика | Двоструко повезана листа кашика | Црвено-црно дрво |
Налог за понављање | Није одржано ниједно наручивање. | Сортирано према редоследу уметања | Сортирано према природном редоследу елемената |
Нулл Кеис | Су дозвољени | Су дозвољени | Није дозвољено |
Синхронизација | Није синхронизовано | Није синхронизовано | Није синхронизовано |
Захтеви за кључеве | Треба да препишете методе екуалс () и хасхЦоде () | Треба да препишете методе екуалс () и хасхЦоде () | Одржава се природно уређење или треба доставити компаратор |
Често постављана питања
П # 1) Шта је ЛинкедХасхМап у Јави?
Одговор: ЛинкедХасхМап у Јави је имплементиран као комбинација ХасхТабле-а и ЛинкедЛист-а. Примењује интерфејс мапе. Има предвидљив редослед понављања. Интерно користи двоструко повезану листу за уносе.
К # 2)Како ЛинкедХасхМап ради на Јави?
Одговор: Сличан је ХасхМап-у, али се разликује од ХасхМап-а по редоследу уметања који ЛинкедХасхМап одржава. Елементи у ЛинкедХасхМап-у се чувају на исти начин као што су унети у структуру података.
К # 3)Како да прођем кроз ЛинкедХасхМап?
Одговор: Можемо да пролазимо кроз ЛинкедХасхМап помоћу итератора.
Следе кораци које можемо следити за итерацију кроз ЛинкедХасхМап помоћу итератора:
- Направите нови ЛинкедХасхМап објекат.
- Користите методу Пут АПИ за уметање парова кључ / вредност на мапу.
- Позовите АПИ методу ентриСет () за добивање скупа парова кључ / вредност на мапи.
- Позовите итератор на овом скупу да бисте дохватили сваки пар кључ / вредност помоћу АПИ-ја гетКеи () и гетВалуе ().
К # 4)Каква је корист од ЛинкедХасхМап у Јави?
Одговор: Главна употреба ЛинкедХасхМап-а у Јави је његова употреба за очување редоследа уметања. Такође се може користити за очување налога за приступ помоћу којег се приступа кључевима. Пошто је бржи од ХасхМап-а, ЛинкедХасхМап се може користити уместо ХасхМап-а где су перформансе кључне.
К # 5)Да ли је ХасхМап бржи од ЛинкедХасхМап-а?
Одговор: Оба су слична по перформансама. ХасхМап-у је потребно мање меморије у поређењу са ЛинкедХасхМап-ом јер ХасхМап не одржава редослед приступа. Стога је ХасхМап релативно бржи.
Закључак
У овом упутству смо разговарали о ЛинкедХасхМап у Јави. Видели смо детаље у вези са декларацијом класе, хијерархијом класе, конструкторима и методама.
шта могу да направим са ц ++-ом
Такође смо научили примарне разлике између, ЛинкедХасхМап и ХасхМап. Такође смо разговарали о тросмерној разлици између ЛинкедХасхМап, ХасхМап и ТрееМап.
У нашем предстојећем упутству истражићемо више тема о Оквиру Јава Цоллецтион.
=> Овде припазите на једноставну серију Јава тренинга.
Препоручено читање
- Водич за Јава рефлексију са примерима
- Дубински водичи за помрачење за почетнике
- Шта је Јава ХасхТабле - примена и пример ХасхТабле-а
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Приступити модификаторима у Јави - Водич са примерима
- Јава СВИНГ лекције: Контејнери, компоненте и руковање догађајима
- Јава Стринг садржи () Водич за методе са примерима
- Јава Стринг са Стринг бафером и Стринг Буилдер Туториал