检查数组中的值是否与Java不同
我有这个密码:检查数组中的值是否与Java不同,java,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) {
@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;
如果长度相等,则遍历数组,直到找到不同的值。然后减去这两个值并返回。我该怎么做呢
如果长度相等
那么,为什么不使用if(myArray.length==passedIn.myArray.length)
而不是来进行-loop呢?(在您的情况下,它只是之前条件的else
)
如果条件为true
,则按照下面的循环在数组上进行迭代。您可以这样做
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;
}
public int compareTo(大整数通过)
{
if(this.myArray.length!=passedIn.myArray.length)
{
返回this.myArray.length-passedIn.myArray.length;
}
for(int i=0;i
如果数组的长度不同,那么您已经返回了。检查它们的长度是否相同是没有意义的。
在检查了新循环中的差异后,可以确保它们是相同的,并跳过那些汇总数组的循环。它们将具有相同的总和,因为它们必须相同。如果(passedIn==null){throw new RuntimeException(“NullExceptionError”);}
,则此的目的是什么?如果检查null
只是为了抛出异常,那么只需删除该检查即可。如果变量为null
“自动”,您将获得所需的NullPointerException
。请解释您的(this.myArray.length==passedIn.myArray.length)
循环。您已经知道如何使用for
,因此只需使用另一个并在内部使用if(myArray[x]!=passedIn.myArray[x]){/code>。
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;
}