gpt4 book ai didi

java - 按某些键值删除重复项

转载 作者:行者123 更新时间:2023-11-29 06:58:41 26 4
gpt4 key购买 nike

说我有我的对象

class MyObject{

private int id;
private int secondId;
private String name;
private String address;

}

我正在将这些对象的列表添加到列表中。

List<MyObject> finalList = new ArrayList<MyObject>();
while(someCondition) {
List<MyObject> l = getSomeMoreObjects();
finalList.addAll(l);
}

一切都很好,除了我只想将具有不同 idsecondId 的新记录添加到列表中。

最好的方法是什么?我认为这将涉及使用 HashMap

最佳答案

您需要覆盖 MyObject 中的 hashCodeequals 方法:

@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + this.id;
hash = 97 * hash + this.secondId;
return hash;
}

@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (!(obj instanceof MyObject))
return false;
MyObject other = (MyObject) obj;
return this.id == other.id && this.secondId == other.secondId;
}

然后创建HashSet:

HashSet<MyObject> set = new HashSet<>();

然后向其中添加对象:

set.add(new MyObject());

如果集合中已有一个具有相同 idsecondId 的对象,HashSet 将忽略您的新对象。

关于java - 按某些键值删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29689276/

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