Java 比较数组中的元素
我被困在一个数据结构类的java赋值的一个组件上,这使我无法完成它的其余部分。这是一个简单的概念,但我在实现中遗漏了一些东西。我有一个名为Java 比较数组中的元素,java,Java,我被困在一个数据结构类的java赋值的一个组件上,这使我无法完成它的其余部分。这是一个简单的概念,但我在实现中遗漏了一些东西。我有一个名为list1的动态数组,我需要将它与另一个列表(list2)进行比较。我有一个方法:equals(objecta)因此调用是list1.equals(list2) 我知道如何使用迭代器比较列表,但如何引用list1对象来比较两者 我不是要求你做我的任务,只是帮助我理解这将如何工作 public static void main(String args[])
list1
的动态数组,我需要将它与另一个列表(list2
)进行比较。我有一个方法:equals(objecta)
因此调用是list1.equals(list2)代码>
我知道如何使用迭代器比较列表,但如何引用list1
对象来比较两者
我不是要求你做我的任务,只是帮助我理解这将如何工作
public static void main(String args[])
{
DynamicArrayOfInts list1 = new DynamicArrayOfInts();
}
public DynamicArrayOfInts()
{
storage = new int[INITIAL_CAPACITY];
size = 0;
}
public boolean equals(Object aThat)
{
if(aThat.equals(storage))
return true;
else
return false;
}
我想你是说在equals
方法中进行比较。如果是这样,则需要将参数a
强制转换为列表。所以
public boolean equals(Object a) {
MyList list1 = (MyList) a;
...
}
行MyList list1=(MyList)a
表示“将引用a
视为对MyList
实例的引用,并将其分配给引用list1
equals
通常接受一个对象
,因此您可以(几乎)将任何内容传递到equals
。根据具体情况,您可以做的第一件事是检查equals
的参数类型,如果它不可能相等,则返回false
我在Intertube上发现的。你在他们的例子中看到的第一件事是
if ( this == aThat ) return true;
if ( !(aThat instanceof Car) ) return false;
这样做可以让您在比较微不足道的情况下快速返回。例如,一个实例等于它本身是一种重言式;不可能是真的。我想您是说您在equals
方法中进行比较。如果是这样,您需要将参数a
转换为一份清单,那么
public boolean equals(Object a) {
MyList list1 = (MyList) a;
...
}
行MyList list1=(MyList)a
表示“将引用a
视为对MyList
实例的引用,并将其分配给引用list1
equals
通常采用对象
,因此您可以(几乎)将任何内容传递到equals
。根据具体情况,您可以做的第一件事是检查equals
的参数类型,如果不可能相等,则返回false
我在管道间找到了。你在他们的例子中看到的第一件事是
if ( this == aThat ) return true;
if ( !(aThat instanceof Car) ) return false;
如果比较微不足道,那么这样做可以让您快速返回。例如,它是一个重言式,一个实例等于它自己;这是不可能的。你应该这样做:
public boolean equals(Object obj)
{
if(obj == null) return false;
if(obj.getClass() != DynamicArrayOfInts.class) return false;
DynamicArrayOfInts other = (DynamicArrayOfInts) obj;
/*compare this.storage to other.storage with the iterator
or with simple indexing.*/
}
你应该这样做:
public boolean equals(Object obj)
{
if(obj == null) return false;
if(obj.getClass() != DynamicArrayOfInts.class) return false;
DynamicArrayOfInts other = (DynamicArrayOfInts) obj;
/*compare this.storage to other.storage with the iterator
or with simple indexing.*/
}
在equals方法中,您使用this
操作符访问列表1而不是nae列表1在equals方法中,您使用this
操作符访问列表1而不是nae列表1这里回答了:这里回答了:谢谢,这就是我缺少的。现在说得通了。谢谢你,这就是我错过的。现在有道理了。