技术文摘
面试官: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 集合去重的方法。在实际应用中,根据具体的需求和场景选择合适的方法,可以提高程序的效率和性能。
- ASM:低调成功人士的自白
- 正确使用 Option 的方法
- 张大胖与单元测试
- 合格数据分析师谈 Python 网络爬虫实战案例二三事
- 合格数据分析师谈 Python 网络爬虫那些事
- 前端技术之 webpack (上)——致后端人员
- 合格数据分析师谈 Python 网络爬虫那些事(Scrapy 自动爬虫)
- AS 中你或许未知的「Extract Resource」小技巧
- 如此迅猛满足搜索需求
- HTTP 缓存在前端性能优化中的三部曲
- Hololens 企业级开放后的创新展望
- Etcd 架构及实现剖析
- 美观实用的 10 款强大开源 Javascript 图表库
- Python、PHP 与 Ruby 的编程语言巅峰之战
- C#开发人员必知的 13 件事