如何从ArrayList中删除重复的元素?


如何从ArrayList中删除重复的元素?


删除重复元素的最简单方法是将内容添加到Set(不允许重复),然后将其添加Set回ArrayList:

List<String> al = new ArrayList<>();
// add elements to al, including duplicates
Set<String> hs = new HashSet<>();
hs.addAll(al);
al.clear();
al.addAll(hs);

当然,这破坏了元素的排序ArrayList。

但如果您需要保留插入顺序,我建议您使用此变体

// list is some List of Strings
Set<String> s = new LinkedHashSet<>(list);

然后,如果您需要返回List引用,则可以再次使用转换构造函数。