Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.
Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně. Pokud je těch položek víc, můžeš použít třeba SQLite, který je na takové přístupy stavěný.
Konkretne v danem pripade se to ma tak:
- po zalogovani usera v @PostConstruct spring session beanu reknu hibernatovi, at mi nacte z postgresa ciselnik cca 300 polozek, hibernate vrati List<RowBean>. Na onen list postvu stream() a toMap() collector, vysledek prelozeny do LinkedHashMap<String,String> ulozim jako atribut session beanu - cela transformace na jednom radku kodu.
- na tenhle atribut povesim Primefaces widget, ktery mi udela luxusni skinovatelny ajaxovy combobox s naseptavacem pres fulltext search, to je prakticky jediny zpusob, jak udelat lidsky pouzitelny combobox se stovkami polozek.
A protoze se pracuje pouze s predzvykanymi daty v session,je to pekelne rychle a nezatezuje CPU serveru, pamet zere, ale to je Jawy standard.
Hotovo na nekolika krasne citelnych radcich kodu.
Samozrejme, ze je blbost neco takoveho chtit po GO, ale aspon neco jako kolekce s Object polozkami v podani jawy 1.4 by se siklo.