技术文摘
面试官:List 集合去重的实现方法
2024-12-31 03:36:20 小编
面试官:List 集合去重的实现方法
在 Java 编程中,当面对一个包含重复元素的 List 集合时,我们常常需要对其进行去重操作。这是一个常见的面试问题,也是实际开发中经常遇到的需求。下面将介绍几种常见的实现 List 集合去重的方法。
一种简单直接的方法是使用 HashSet 来辅助去重。HashSet 是一种不允许重复元素的数据结构。我们可以将 List 中的元素依次添加到 HashSet 中,然后再将 HashSet 中的元素重新放回 List 中,这样就实现了去重。示例代码如下:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class ListDeduplication {
public static List<String> deduplicateUsingHashSet(List<String> list) {
HashSet<String> set = new HashSet<>(list);
list.clear();
list.addAll(set);
return list;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
List<String> deduplicatedList = deduplicateUsingHashSet(list);
for (String element : deduplicatedList) {
System.out.println(element);
}
}
}
另一种方法是通过遍历 List 集合,使用一个新的集合来存储不重复的元素。在遍历过程中,判断新集合中是否已经存在当前元素,如果不存在则添加进去。示例代码如下:
import java.util.ArrayList;
import java.util.List;
public class ListDeduplication2 {
public static List<String> deduplicate(List<String> list) {
List<String> result = new ArrayList<>();
for (String element : list) {
if (!result.contains(element)) {
result.add(element);
}
}
return result;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
List<String> deduplicatedList = deduplicate(list);
for (String element : deduplicatedList) {
System.out.println(element);
}
}
}
还有一种使用 Java 8 的 Stream 流来实现去重的方法。通过 distinct 方法可以方便地对集合进行去重操作。示例代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ListDeduplication3 {
public static List<String> deduplicateUsingStream(List<String> list) {
return list.stream().distinct().collect(Collectors.toList());
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
List<String> deduplicatedList = deduplicateUsingStream(list);
for (String element : deduplicatedList) {
System.out.println(element);
}
}
}
以上就是几种常见的实现 List 集合去重的方法。在实际应用中,根据具体的需求和场景选择合适的方法,可以提高程序的效率和性能。
- “零拷贝”技术并非高深莫测
- 信息产业自主生态构建概览
- 十五种微服务架构框架
- 应用架构为何需要分类思维
- Python 速度之谜:Python 之父一言惊人
- 几款出色的 API 测试工具分享
- Java 反射的慢因探究
- 微服务、容器与 DevOps 的复杂关系你能理清吗?
- 多年 Excel 数据填报的诸多烦恼,如今被此神器一举消除
- 应对“删库跑路”的解决之道
- 2020 年 50 多种值得收藏的 Kubernetes 工具
- GitHub 获 201K 标星!爆火的 Vue.js 项目你知晓几个
- Python3.10 第二个 alpha 版本 最新特性引人瞩目
- 以喜爱的编程语言将基础设施配置为代码
- PHP 8.0 正式版推出 性能提升 10%