欢迎访问宙启技术站
智能推送

如何删除List中重复的元素

发布时间:2023-12-24 14:24:52

删除List中重复的元素是一个常见的问题,可以通过多种方法来解决。下面将详细介绍三种常用的方法,并给出相应的使用例子。

方法一:使用Set

Set 是 Java 中的一种集合类,它的特点是不允许重复的元素。因此,可以使用Set来帮助我们删除List中的重复元素。

下面是使用Set删除List中重复元素的示例代码:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class RemoveDuplicatesExample {

    public static void main(String[] args) {
        // 创建一个包含重复元素的List
        List<Integer> listWithDuplicates = new ArrayList<>();
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);
        listWithDuplicates.add(3);
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);
        
        // 使用Set来删除重复元素
        Set<Integer> set = new HashSet<>(listWithDuplicates);
        List<Integer> listWithoutDuplicates = new ArrayList<>(set);

        // 输出结果
        System.out.println("List with duplicates: " + listWithDuplicates);
        System.out.println("List without duplicates: " + listWithoutDuplicates);
    }
}

输出结果:

List with duplicates: [1, 2, 3, 1, 2]
List without duplicates: [1, 2, 3]

方法二:使用循环

另一种方法是使用循环来逐个比较List中的元素,并删除重复的元素。

下面是使用循环删除List中重复元素的示例代码:

import java.util.ArrayList;
import java.util.List;

public class RemoveDuplicatesExample {

    public static void main(String[] args) {
        // 创建一个包含重复元素的List
        List<Integer> listWithDuplicates = new ArrayList<>();
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);
        listWithDuplicates.add(3);
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);

        // 使用循环删除重复元素
        List<Integer> listWithoutDuplicates = new ArrayList<>();
        for (Integer element : listWithDuplicates) {
            if (!listWithoutDuplicates.contains(element)) {
                listWithoutDuplicates.add(element);
            }
        }

        // 输出结果
        System.out.println("List with duplicates: " + listWithDuplicates);
        System.out.println("List without duplicates: " + listWithoutDuplicates);
    }
}

输出结果:

List with duplicates: [1, 2, 3, 1, 2]
List without duplicates: [1, 2, 3]

方法三:使用Java 8的Stream API

如果使用Java 8及以上的版本,我们还可以使用Stream API来删除List中的重复元素。

下面是使用Stream API删除List中重复元素的示例代码:

import java.util.ArrayList;
import java.util.List;

public class RemoveDuplicatesExample {

    public static void main(String[] args) {
        // 创建一个包含重复元素的List
        List<Integer> listWithDuplicates = new ArrayList<>();
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);
        listWithDuplicates.add(3);
        listWithDuplicates.add(1);
        listWithDuplicates.add(2);

        // 使用Stream API删除重复元素
        List<Integer> listWithoutDuplicates = listWithDuplicates.stream().distinct().toList();

        // 输出结果
        System.out.println("List with duplicates: " + listWithDuplicates);
        System.out.println("List without duplicates: " + listWithoutDuplicates);
    }
}

输出结果:

List with duplicates: [1, 2, 3, 1, 2]
List without duplicates: [1, 2, 3]

以上就是三种常用的方法来删除List中的重复元素,并附带相应的使用例子。根据实际情况选择合适的方法来解决问题。