次のようなシナリオがあります。懸念事項を明確にするためにここで示しているのは、単純な形式のコードです。
public void callMe()
{
AtomicInteger howManyOdds = new AtomicInteger(0);
AtomicInteger howManyEvens = new AtomicInteger(0);
loopThrough(100,howManyOdds,howManyEvens);
System.out.println(howManyOdds.get()+" "+howManyEvens.get());
}
private void loopThrough(int counter,AtomicInteger howManyOdds,AtomicInteger howManyEvens)
{
for(int i = 1 ; i <= counter ;i++)
{
if(i%2 == 0)
howManyEvens.getAndAdd(1);
else
howManyOdds.getAndAdd(1);
}
}
でできることは知っていますが、int[]
ちょっと奇妙に見えます。このような場合、AtomicInteger は Mutable Integer の代わりになるのでしょうか? いいえの場合、なぜですか?