当前位置:首页 > Java

如何用java查重

2026-03-18 13:18:48Java

使用HashSet查重

HashSet基于哈希表实现,能自动过滤重复元素。将待查重的数据存入HashSet,利用其特性快速判断重复项。

import java.util.HashSet;

public class DuplicateChecker {
    public static boolean hasDuplicates(int[] array) {
        HashSet<Integer> set = new HashSet<>();
        for (int num : array) {
            if (!set.add(num)) {
                return true; // 发现重复
            }
        }
        return false;
    }
}

使用Stream API查重

Java 8的Stream API提供简洁的链式操作,结合distinct()count()方法可统计重复元素。

import java.util.Arrays;
import java.util.List;

public class StreamDuplicateCheck {
    public static boolean checkDuplicates(List<String> list) {
        return list.size() != list.stream().distinct().count();
    }
}

双重循环遍历比较

适用于小规模数据或需要自定义比较逻辑的场景。通过嵌套循环逐元素比较,但时间复杂度较高(O(n²))。

public class BruteForceCheck {
    public static boolean findDuplicates(String[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i].equals(arr[j])) {
                    return true;
                }
            }
        }
        return false;
    }
}

使用HashMap计数

通过HashMap记录元素出现次数,适用于需要统计重复次数的场景。

import java.util.HashMap;

public class CountDuplicates {
    public static void printDuplicates(int[] array) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int num : array) {
            map.put(num, map.getOrDefault(num, 0) + 1);
        }
        map.forEach((key, value) -> {
            if (value > 1) {
                System.out.println("重复元素: " + key + ", 次数: " + value);
            }
        });
    }
}

针对对象列表的查重

若需检查自定义对象的重复性,需重写equals()hashCode()方法,再使用上述集合类。

如何用java查重

import java.util.HashSet;

class Person {
    private String name;
    private int age;

    // 构造方法、getter/setter省略

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && name.equals(person.name);
    }

    @Override
    public int hashCode() {
        return 31 * name.hashCode() + age;
    }
}

public class ObjectDuplicateCheck {
    public static boolean checkPersonDuplicates(HashSet<Person> people) {
        return people.size() != new HashSet<>(people).size();
    }
}

标签: 如何用java
分享给朋友:

相关文章

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…

教你如何完全卸载java

教你如何完全卸载java

卸载 Java 的步骤 Windows 系统 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到 Java 相关的条目,通常显示为“Java”或“Java(TM)”。右键点击选择卸载,按照…

如何用java做游戏

如何用java做游戏

使用Java开发游戏的基本方法 Java是一种跨平台的编程语言,适合开发2D游戏甚至简单的3D游戏。以下是使用Java开发游戏的主要方法和工具。 选择游戏开发框架 Java游戏开发通常依赖以下框架或…

vue实现java登录注册

vue实现java登录注册

实现 Vue 与 Java 后端的登录注册功能 前端 Vue 部分 安装必要的依赖(如 axios 用于 HTTP 请求): npm install axios 创建登录表单组件(Login.vue…

react hooks如何用

react hooks如何用

使用 React Hooks 的基本方法 React Hooks 是 React 16.8 引入的功能,允许在函数组件中使用状态和其他 React 特性。以下是几种常用 Hooks 的用法。 use…