方法6:Stream去重(有序)
JDK 8 为我们带来了一个非常实用的方法 Stream,使用它可以实现很多功能,比如下面的去重功能:
public class ListDistinctExample { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>() {{ add(1); add(3); add(5); add(2); add(1); add(3); add(7); add(2); }}; System.out.println("原集合:" + list); method_5(list); } /** * 使用 Stream 去重 * @param list */ public static void method_5(List<Integer> list) { list = list.stream().distinct().collect(Collectors.toList()); System.out.println("去重集合:" + list); } }
以上程序执行的结果,如下所示:
Stream 实现去重功能和其他方法不同的是,它不用新创建集合,使用自身接收一个去重的结果就可以了,并且实现代码也很简洁,并且去重后的集合顺序也和原集合的顺序保持一致,是我们最优先考虑的去重方法。
总结
本文我们介绍了 6 种集合去重的方法,其中实现最简洁,且去重之后的顺序能和原集合保持一致的实现方法,只有两种:LinkedHashSet 去重和 Stream 去重,而后一种去重方法无需借助新集合,是我们优先考虑的去重方法。