📜  从java中的列表中过滤掉唯一值(1)

📅  最后修改于: 2023-12-03 15:06:33.132000             🧑  作者: Mango

从Java中的列表中过滤掉唯一值

在Java中,我们经常需要从列表中过滤出唯一的元素。本文将介绍几种方法来实现这个过程。

1. 使用HashSet

HashSet是Java中的一种集合,它可以快速定位唯一值。我们可以先将列表中的元素添加到HashSet中,然后再把HashSet中的元素重新转换为列表即可。

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");

HashSet<String> set = new HashSet<>(list);
List<String> uniqueList = new ArrayList<>(set);

System.out.println(uniqueList); // [banana, orange, apple]
2. 使用Java8的Stream

Java8引入了Stream API,我们可以使用它来过滤出列表中的唯一值。Stream API提供了distinct()方法,可以去除重复元素。具体代码如下:

List<String> list = Arrays.asList("apple", "banana", "apple", "orange");

List<String> uniqueList = list.stream().distinct().collect(Collectors.toList());

System.out.println(uniqueList); // [apple, banana, orange]
3. 使用LinkedHashSet

LinkedHashSet是HashSet的一个变种,它可以按照元素添加的顺序来存储元素,并且去除重复元素。我们可以先将列表中的元素添加到LinkedHashSet中,然后再把LinkedHashSet中的元素重新转换为列表即可。

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");

LinkedHashSet<String> set = new LinkedHashSet<>(list);
List<String> uniqueList = new ArrayList<>(set);

System.out.println(uniqueList); // [apple, banana, orange]
结论

以上三种方法均可实现从Java中的列表中过滤掉唯一值,具体使用哪种方法取决于具体情况。HashSet和LinkedHashSet适用于大规模数据的情况,而Stream API则适用于小规模数据,而且在具备jdk1.8及以上环境的情况下,优先建议使用Stream API。