increment and decrement operator

Jackie
Mar 19, 2021

there is an interesting result for this operation

slotCount.computeIfPresent(indice, (k,v) -> v--);

it supposed to reduce the value by one for corresponding indice as the key.

however, the result is `the value is never changed`.

it’s a good reminder, as it happens, the incremental operator is conducting two operations. And the increment/decrement is after the first operation (return the value here) is done.

so the solution is

slotCount.computeIfPresent(indice, (k,v) -> v-1);//return -1 result
slotCount.computeIfPresent(indice, (k,v) -> --v);//minus one, then return

--

--