5

次のようなシナリオがあります。懸念事項を明確にするためにここで示しているのは、単純な形式のコードです。

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 の代わりになるのでしょうか? いいえの場合、なぜですか?

4

1 に答える 1