gpt4 book ai didi

java - 根据条件插入时从集合中删除重复元素

转载 作者:行者123 更新时间:2023-12-01 14:47:56 25 4
gpt4 key购买 nike

对于 ClassA 类,我有 2 个属性 - X 和 Y我已经重写了 ClassA 的 equals 方法,以便通过检查属性 X 来找到 2 个类的相等性。

ClassA {

Integer X,Y;

Integer getX(){return X;}
Integer getY(){return Y;}

boolean equals(object o){
return getX().equals((ClassA)o).getX());
}

}

现在我想从列表中删除 ClassA 的所有重复元素但是如果发现 2 个元素重复,我想添加一个逻辑来根据 Y 标准删除重复元素。所以基本上如下所示

if(A.eqauls(B)){
remove A , if A.getY() > B.getY()
ore remove B , if A.getY() < B.getY()
}

显然,我会尝试对列表进行排序并查看相邻的重复元素,然后根据我们的逻辑删除重复元素。我想知道是否可以使用集合来做到这一点。

最佳答案

类似这样的事情:

Map<ClassA, ClassA> map = new HashMap();

for(ClassA elem : yourList)
{
ClassA existing = map.get(elem);
if(existing != null)
{
if(check your condition using "elem" and "existing" and getY)
{
continue;// don't replace the element in the map.
}
}
map.put(elem, elem);
}
//map.values() will have your elements

如果您想保留列表中元素的顺序,也可以使用LinkedHashMap

顺便说一句,HashSet 是使用 HashMap 以类似的方式实现的。

关于java - 根据条件插入时从集合中删除重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223689/

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