Java 比较数组中的元素

Java 比较数组中的元素,java,Java,我被困在一个数据结构类的java赋值的一个组件上,这使我无法完成它的其余部分。这是一个简单的概念,但我在实现中遗漏了一些东西。我有一个名为list1的动态数组,我需要将它与另一个列表(list2)进行比较。我有一个方法:equals(objecta)因此调用是list1.equals(list2) 我知道如何使用迭代器比较列表,但如何引用list1对象来比较两者 我不是要求你做我的任务,只是帮助我理解这将如何工作 public static void main(String args[])

我被困在一个数据结构类的java赋值的一个组件上,这使我无法完成它的其余部分。这是一个简单的概念,但我在实现中遗漏了一些东西。我有一个名为
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

这里回答了:这里回答了:谢谢,这就是我缺少的。现在说得通了。谢谢你,这就是我错过的。现在有道理了。