场景:我们需要将重复的元素从数据集中删除。此时可以使用HashSet、stream和Looping。
一、使用HashSet进行去重
HashSet较为常见,由于HashSet是一个不包含重复元素的集合,当添加重复元素时,HashSet会自动进行去重。
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// 初始化列表
Listlist = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
System.out.println("Original List : " + list);
// 使用HashSet进行去重
Setset = new HashSet<>(list);
System.out.println("List after removing duplicates : " + set);
}
}二、使用Java 8 Stream 进行去重
Java 8 引入了 Stream API,Stream 的 distinct() 方法可以去除重复的元素,生成一个新的没有重复元素的流。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 初始化列表
Listlist = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
System.out.println("Original List : " + list);
// 使用Java 8 Stream 进行去重
ListdistinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println("List after removing duplicates : " + distinctList);
}
}三、使用循环检测进行去重
除了使用内置函数或数据结构外,还可以通过循环检测和比较来实现去重操作
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 初始化列表
Listlist = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
System.out.println("Original List : " + list);
// 使用循环进行去重
ListdistinctList = new ArrayList<>();
for (String s : list) {
if (!distinctList.contains(s)) {
distinctList.add(s);
}
}
System.out.println("List after removing duplicates : " + distinctList);
}
} 本文链接:https://my.lmcjl.com/post/20715.html
展开阅读全文
4 评论