如何在java中使用removeall()减去ArrayList?

如何在java中使用removeall()减去ArrayList?,java,arraylist,overriding,equals,subtraction,Java,Arraylist,Overriding,Equals,Subtraction,我有java中的数组列表: List<Correction> Auv=new ArrayList<>(); List<Correction> Produv=new ArrayList<>(); 但是没有减法,数组仍然包含它的初始值,有什么方法可以做到这一点吗? 我尝试重写equals(),但仍然得到相同的结果 下面是我的补习班代码: public class Correction { private String node0;

我有java中的数组列表:

List<Correction> Auv=new ArrayList<>();
List<Correction> Produv=new ArrayList<>();
但是没有减法,数组仍然包含它的初始值,有什么方法可以做到这一点吗? 我尝试重写equals(),但仍然得到相同的结果

下面是我的补习班代码:

    public class Correction {
    private String node0;
    private String node1;

    public Correction(String node0, String node1) {
        this.node0 = node0;
        this.node1 = node1;
    }

    public void setNode0(String node0){
        this.node0=node0;
    }
    public void setNode1(String node1){
        this.node1=node1;
    }

    public String getNode0(){
        return node0;
    }
    public String getNode1(){
        return node1;
    }

    @Override
    public boolean equals(Object object){
        boolean same = false;

        if (object != null && object instanceof Correction)
        {
            same = this.node0 == ((Correction) object).node1 && this.node1 == ((Correction) object).node1;
        }

        return same;
    }
}
解决了!! 这只是重写equals()方法的一个错误(谢谢大家) 这是我的更正:

   @Override
    public boolean equals(Object object){
        boolean same = false;

        if (object != null && object instanceof Correction)
        {
            same = (this.node0 == ((Correction) object).node1 && this.node1 == ((Correction) object).node0)||(this.node0 == ((Correction) object).node0 && this.node1 == ((Correction) object).node1);
        }

        return same;
    }

你的方法看起来是错误的。比较
这个.node0
((校正)对象).node0
更有意义

我认为应该是:

public boolean equals(Object object){
    boolean same = false;

    if (object != null && object instanceof Correction)
    {
        same = this.node0.equals(((Correction) object).node0) && this.node1.equals(((Correction) object).node1);
    }

    return same;
}
还有,这是打字错误吗

Auv.add("c","a");
Auv.add("b","c");
可能是:

Auv.add(new Correction ("c","a"));
Auv.add(new Correction ("b","c"));

this.node0
是否应等于
object.node1
object.node0
?此外,您所拥有的代码也不会编译。
Auv.add(“c”、“a”)
在其他方面没有任何意义,适用于。在我看来,基本上是一个简单的打字错误。(除了比较字符串。)但是,我要补充的是,
Correction
覆盖了
equals
,但没有覆盖
hashCode()
,这是一个糟糕的做法。哇,这是一个打字错误,我很抱歉。是 啊你的代码工作!但是,我试图得到的是,修正(c,a)也等于(a,c)。哇,真是个错误,只需添加相同的=(this.node0==((校正)对象)。node1&&this.node1==((校正)对象)。node0)|(this.node0==((校正)对象)。node0&&this.node1==((校正)对象)。node1);谢谢你,伙计!
Auv.add(new Correction ("c","a"));
Auv.add(new Correction ("b","c"));