如何从ArrayList中删除重复的元素?
  我有一个Strings ArrayList ,我想从中删除重复的字符串。  我怎样才能做到这一点? 
  如果你不想在一个Collection重复,你应该考虑为什么你使用一个允许重复的Collection 。  删除重复元素的最简单方法是将内容添加到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元素的排序。 
  尽管将ArrayList转换为HashSet有效地删除重复项,但如果您需要保留插入顺序,我宁愿建议您使用此变体 
// list is some List of Strings
Set<String> s = new LinkedHashSet<>(list);
  然后,如果您需要取回List引用,则可以再次使用转换构造函数。 
在Java 8中:
List<String> deduped = list.stream().distinct().collect(Collectors.toList());
请注意,应该遵守列表成员的hashCode-equals协定,以使筛选正常工作。
链接地址: http://www.djcxy.com/p/19985.html上一篇: How do I remove repeated elements from ArrayList?
下一篇: How to decide which collection should be used from List Set?
