您的位置:

Java中去重操作

Java中去重操作

更新:

场景:我们需要将重复的元素从数据集中删除。此时可以使用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);
    }

}