我有这段代码:
@Override
public int compareTo(LargeInt passedIn)//
{
if(passedIn == null)
{
throw new RuntimeException("NullExceptionError");
}
int ewu = 0;
int avs = 0;
if(this.myArray.length != passedIn.myArray.length)
{
return this.myArray.length - passedIn.myArray.length;
}
for(this.myArray.length == passedIn.myArray.length)
{
}
for(int x = 0; x < this.myArray.length; x++)
{
ewu += this.myArray[x];
}
for(int x = 0; x < passedIn.myArray.length; x++)
{
avs += passedIn.myArray[x];
}
return ewu - avs;
}
我的目标是,在这条线下:
for(this.myArray.length == passedIn.myArray.length)
我想如果长度相等,则遍历数组直到找到不同的值。然后减去这两个值并返回。我该怎么做呢?
答案 0 :(得分:1)
你可以做到
public int compareTo(LargeInt passedIn)
{
if (this.myArray.length != passedIn.myArray.length)
{
return this.myArray.length - passedIn.myArray.length;
}
for (int i = 0; i < this.myArray.length; i++) {
if (this.myArray[i] != passedIn.myArray[i])
return this.myArray[i] - passedIn.myArray[i];
}
return 0;
}
如果阵列长度不同,您已经返回了。检查它们的长度是否相同没有意义。 在您检查了新循环中的差异之后,您可以确定它们是相同的并跳过那些汇总数组的循环。他们将具有相同的总和,因为它们必须相同。
答案 1 :(得分:0)
如果长度相等
那么,为什么不使用if(myArray.length == passedIn.myArray.length)
而不是(语法上不正确)for
- 循环? (在你的情况下,它只是之前条件的else
)。
如果条件为true
,则按照下面的循环迭代数组。