面试官: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 集合去重的方法。在实际应用中,根据具体的需求和场景选择合适的方法,可以提高程序的效率和性能。

TAGS: 去重方法 集合操作 面试技巧 List 集合

欢迎使用万千站长工具!

Welcome to www.zzTool.com