在我发布这个问题之前,我发现以某种方式发布了类似的问题 here .但答案是基于一个字符串。但是,我这里有不同的情况。我不是要删除字符串,而是要删除另一个名为 AwardYearSource 的对象。这个类有一个名为 year 的 int 属性。所以我想根据年份删除重复项。即,如果不止一次提到 2010 年,我想删除该 AwardYearSource 对象。我怎样才能做到这一点?
最佳答案
最简单的基于字段移除元素的方法如下(保留顺序):
Map<Integer, AwardYearSource> map = new LinkedHashMap<>();
for (AwardYearSource ays : list) {
map.put(ays.getYear(), ays);
}
list.clear();
list.addAll(map.values());
关于java - 如何从基于自定义 java 对象而不是原始类型的列表中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10177139/