Java中相同值过滤的方法
在Java编程中,经常需要对集合中的元素进行过滤,以去除重复的值,这可以通过多种方法实现,以下是一些常见且有效的方法。

使用HashSet
HashSet是基于HashMap实现的,它存储元素时自动去重,以下是一个使用HashSet去除列表中重复元素的示例:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(4);
numbers.add(4);
HashSet<Integer> uniqueNumbers = new HashSet<>(numbers);
System.out.println(uniqueNumbers);
}
}
使用Stream API
Java 8引入了Stream API,它提供了一种声明式的方式来处理数据集合,以下是如何使用Stream API去除列表中的重复元素:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 4);
List<Integer> uniqueNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(uniqueNumbers);
}
}
使用Collections.sort()和LinkedHashSet
对于可排序的集合,可以先对集合进行排序,然后使用LinkedHashSet来去除重复元素:
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(4);
numbers.add(4);
Collections.sort(numbers);
Set<Integer> uniqueNumbers = new LinkedHashSet<>(numbers);
System.out.println(uniqueNumbers);
}
}
使用自定义去重方法
你可能需要根据特定的条件来去重,以下是一个自定义的去重方法,它可以根据元素是否相等来去除重复项:

import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> strings = new ArrayList<>();
strings.add("apple");
strings.add("banana");
strings.add("apple");
strings.add("cherry");
strings.add("banana");
strings.add("date");
List<String> uniqueStrings = removeDuplicates(strings);
System.out.println(uniqueStrings);
}
public static List<String> removeDuplicates(List<String> list) {
List<String> uniqueList = new ArrayList<>();
for (String item : list) {
if (!uniqueList.contains(item)) {
uniqueList.add(item);
}
}
return uniqueList;
}
}
Java中去除相同值的方法有很多种,选择哪种方法取决于具体的需求和场景,上述方法提供了不同的解决方案,可以根据实际情况灵活运用。



















