class Obj{
int x;
int y;
Date z;
public int compareTo(Obj other) {
if(this.z.getTime() > other.getZ().getTime())
return 1;
else if(this.z.getTime() < other.getZ().getTime())
return -1;
else
return 0;
}
boolean equals(Obj other) {
if(x== other.x && y == other.y)
return true;
else
return false;
}
}
现在我有一个list<Obj>
,我必须删除重复项,并且只有在有多个具有相同 ID 的对象时才选择最新的(最新的 z)。
sortedSet = new TreeSet(objList);
reversedSortedList = new ArrayList(sortedSet); //This will not be needed if we reverse the comparator logic. However it is not good.
uniqueSet = new HashSet(reverseSortedList);
return uniqueSet;
这是做事的好方法吗。或者有一种更清洁、更好的做事方式。对我来说,列表中的元素数量也在 1000-10000 之间
谢谢