java - 如何从基于自定义 java 对象而不是原始类型的列表中删除重复项?

标签 java list arraylist set

在我发布这个问题之前,我发现以某种方式发布了类似的问题 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/

相关文章:

java - 如何将字符串转换为数组?

java - 为什么用户名和密码返回空?

java - 将迭代器与 Java Selenium WebDriver 结合使用

java - 使用 BasicDBObject 从 JSON 字符串列表中获取键和值

java - 按距当前 GPS 位置的距离对 GPS 位置集合进行排序

java - iCal4j 更新和删除 iCalendar 中的 VEvent

java - Tapestry 循环遍历 tml 文件中的嵌套 map

html - 调整 <li> 元素上 border-bottom 的长度

java - System.out.println ("Serializable: "+ arrayList instanceof Serialized) 不打印 'Serializable' 字

java - 打印具有重复条目的数组列表