如果我有例如int size
并包含例如然后具有int distance
mod
操作的列表的大小,即distance%size
是(-size - 1) <= distance <= (size - 1)
在这种情况下是否需要检查零(模数和加法后)?
即,距离将始终在此范围内(-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
,我们首先不会达到这个条件。
那么是否需要这种条件检查?
在这里,我想我快要疯了所有的奇怪的答案。相当明显的距离可以很容易地在这里。 – Voo
+1如果'distance == n * size',其中n可以是负值或正值,模数为0。 –