gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:04:06 24 4
gpt4 key购买 nike

我在java中有数组列表:

List<Correction> Auv=new ArrayList<>();
List<Correction> Produv=new ArrayList<>();

然后我想用Auv减去Produv值,这是一个例子:

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

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

Produv.removeall(Auv);

但没有减去任何内容,数组仍然包含其初始值,有什么办法可以做到这一点吗?我尝试重写 equals(),但仍然得到相同的结果

这里是我的 Correction 类的代码:

    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;
}

最佳答案

您的 equals 方法看起来错误。将 this.node0((Correction) object).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"));

关于java - 如何在java中使用removeall()减去ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com