首页 > 编程知识 正文

Java中的去重技术

时间:2023-11-21 19:12:39 阅读:308326 作者:CGXG

在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) {
        // 初始化列表
        List list = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
        System.out.println("Original List : " + list);

        // 使用HashSet进行去重
        Set set = 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) {
        // 初始化列表
        List list = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
        System.out.println("Original List : " + list);

        // 使用Java 8 Stream 进行去重
        List distinctList = 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) {
        // 初始化列表
        List list = Arrays.asList("A", "B", "A", "C", "D", "B", "D");
        System.out.println("Original List : " + list);

        // 使用循环进行去重
        List distinctList = new ArrayList<>();
        for (String s : list) {
            if (!distinctList.contains(s)) {
                distinctList.add(s);
            }
        }
        System.out.println("List after removing duplicates : " + distinctList);
    }

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。