gpt4 book ai didi

java - 检测 ArrayList 是否包含同一对象的多个实例

转载 作者:行者123 更新时间:2023-11-30 06:58:44 25 4
gpt4 key购买 nike

我试图检测 ArrayList 是否包含对象的相同副本,但没有成功。这是我的代码;

public class Foo{
int id;
int name;

@Override
public boolean equals(Object o){
Foo f = (Foo)o;
return f.id==this.id;
}

}

//in another class
ArrayList<Foo> foos;
...
boolean ifFoosListContainsMultipleFoo(Foo f){
return foos.indexOf(f)!=foos.lastIndexOf(f);
}
//but this method always returns `false` even the `foos` list
//contains multiple object with the same `id`;

那么,我做错了什么,是否有更优化的方法?

提前致谢。

编辑:我看到我需要覆盖 Foo 类的 hash 方法,那为什么 equals功能不够;

编辑 2: 很抱歉浪费您的时间,但这是我的错误。我的代码没有问题,我将 ifFoosListContainsMultipleFoo 用作 !ifFoosListContainsMultipleFoo 所以这是 false 响应的结果。

向我道歉。

最佳答案

您的代码应该按原样工作,除非 f 根本出现在列表中。

所以你可以这样做,

boolean ifFoosListContainsMultipleFoo(Foo f){
return (foos.indexOf(f) != -1) && (foos.indexOf(f)!=foos.lastIndexOf(f));
}

关于java - 检测 ArrayList 是否包含同一对象的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346382/

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