我有一个自定义对象的ArrayList。我要删除重复的条目。
对象具有三个字段:title, subtitle和id。如果字幕多次出现,那么我只需要带有thats字幕的第一项(忽略带有该字幕的其余对象)。
title, subtitle
id
您可以使用自定义Comparator将ArrayList的内容放入TreeSet中,如果两个字幕相同,则应返回0。之后,您可以将Set转换为列表,并使列表中没有“重复项”。这是对象的示例,您当然应该使用正确的类和逻辑。
public void removeDuplicates(List<Object> l) { // ... the list is already populated Set<Object> s = new TreeSet<Object>(new Comparator<Object>() { @Override public int compare(Object o1, Object o2) { // ... compare the two object according to your requirements return 0; } }); s.addAll(l); List<Object> res = Arrays.asList(s.toArray()); }