我有一个 ArrayList 填充有属性名称和时间的对象。我想根据名称删除重复项并仅保留最新时间的记录。所以我在我的对象中覆盖了equals
和hashcode
for name 并使用了这样的代码。
private List<ChangedRecentlyTO> groupRecords(List<ChangedRecentlyTO> toList) {
changedRecentlyList.clear(); //static list
for(ChangedRecentlyTO to : toList) {
if(!changedRecentlyList.contains(to)) {
changedRecentlyList.add(to);
} else {
if(changedRecentlyList.get(changedRecentlyList.lastIndexOf(to)).getTimeChanged().before(to.getTimeChanged())) {
changedRecentlyList.remove(to);
changedRecentlyList.add(to);
}
}
}
return changedRecentlyList;
}
但我想知道,有没有更好的解决方案?我正在考虑使用 Set 但我无法弄清楚我应该如何将时间标准放在那里。