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
Windows < Android - pod pewnymi względami ;-)
Java 8 + lambdy = wolno ;-)
Zgadujemy wyniki wyborów ;-)
Java 32 bit vs. Java 64 bit
Jak z metody size() w List w Java'ie dostać ujemną liczbę? ;-)

Brak komentarzy:

Prześlij komentarz