poniedziałek, marca 19, 2018

Zaczynam woleć Map<Key,int[]> nad Map<Key,Integer> ;-)

Wstyd przyznać, ale ostatnio zaczęło mi się podobać używanie 1 elementowej tablicy int'ów zamiast Integera jako wartości w Map...
To takie odświeżające móc napisać:
map.computeIfAbsent(c, key -> new int[1]);
map.get(c)[0]++;

zamiast:
map.put(c, map.getOrDefault(c,0)+1)

jak się np. liczy litery w String'u....

A później np:
if (--map.get(c)[0]==0) map.remove(c);

zamiast:
map.put(c, map.get(c)-1);
if (map.get(c)==0) map.remove(c);

A mimo wszystko nie jest to dużo mniej czytelny zapis, wydaje mi się nawet, że jedynie to -- w predecrementacji może być nieczytelne.

Kandydat mi pokazał ;-) tzn. wcześniej wiedziałem, że tak można, ale jakoś nigdy tego nie używałem.

Podobne postybeta
Zgadujemy wyniki wyborów ;-)
"Chiba widziałem Księżyc" ;-)
White & Nerdy
AST w akcji - zamieniamy źrodło w Java'ie w "rysunek" ;-)
"Plakat"

Brak komentarzy:

Prześlij komentarz