int size
であり、例えば、リストのサイズは、mod
の操作distance%size
を持つint distance
です。(-size - 1) <= distance <= (size - 1)
この場合(モジュラスと加算の後に)ゼロチェックが必要ですか?
eです。距離は常にこの範囲の中にあります(-size - 1) <= distance <= (size - 1)
私はこれに正しければ、次の状態チェックの意味は何ですかCollectionsRotate in JDK?
if (size == 0)
return;
distance = distance % size;
if (distance < 0)
distance += size;
if (distance == 0) //Why this check????
return;
私はここで間違っていたり、錆びかもしれないが、私はこの時点でdistance
が今まで添加の結果としてnullをすることができないと思います。リストが0
だった場合、最初はその条件には達しませんでした。
この条件付きチェックは必要ですか?
そして、ここで私は、私はすべての奇妙な答えと狂ったと思いました。明らかに距離は簡単に0になります。 – Voo
+1 'distance == n * size'の場合、nは負または正であり、モジュラスは0です。 –