当前位置:首页 > 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()方法可统计重复元素。

如何用java查重

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²))。

如何用java查重

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()方法,再使用上述集合类。

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中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

如何编写java

如何编写java

编写Java程序的基本步骤 安装Java开发工具包(JDK),确保系统环境变量配置正确。可以从Oracle官网下载最新版本的JDK并进行安装。 选择一个合适的集成开发环境(IDE),如Eclipse…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

eclipse如何创建java

eclipse如何创建java

在Eclipse中创建Java项目 打开Eclipse后,选择菜单栏中的"File" -> "New" -> "Java Project"。在弹出的对话框中输入项目名称,确保"Use de…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…