检查数组中的值是否与Java不同

时间:2014-11-22 00:12:11

标签: java

我有这段代码:

@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)

我想如果长度相等,则遍历数组直到找到不同的值。然后减去这两个值并返回。我该怎么做呢?

2 个答案:

答案 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,则按照下面的循环迭代数组。