在Java开发中,HashSet 是一个非常常用且高效的集合类。它属于 Java集合框架 的一部分,主要用于存储不重复的元素,并提供快速的查找、插入和删除操作。本教程将从零开始,手把手教你如何使用 Java HashSet,即使是编程小白也能轻松上手!
HashSet 是 Java 中 java.util 包提供的一个类,它实现了 Set 接口。它的最大特点是:不允许存储重复元素,并且不保证元素的顺序(因为底层基于哈希表实现)。
下面是一个简单的 HashSet使用方法 示例:
import java.util.HashSet;public class HashSetExample { public static void main(String[] args) { // 创建一个HashSet HashSet<String> fruits = new HashSet<>(); // 添加元素 fruits.add("苹果"); fruits.add("香蕉"); fruits.add("橙子"); fruits.add("苹果"); // 重复元素,不会被添加 // 输出集合内容 System.out.println("水果集合: " + fruits); // 检查是否包含某个元素 System.out.println("包含香蕉吗? " + fruits.contains("香蕉")); // 删除元素 fruits.remove("橙子"); System.out.println("删除橙子后: " + fruits); // 获取元素个数 System.out.println("元素个数: " + fruits.size()); }} 运行结果可能如下(顺序不固定):
水果集合: [香蕉, 苹果, 橙子]包含香蕉吗? true删除橙子后: [香蕉, 苹果]元素个数: 2
HashSet去重原理 基于对象的 hashCode() 和 equals() 方法:
hashCode() 方法,计算哈希值。equals() 方法比较是否相等。⚠️ 注意:如果你自定义类作为 HashSet 的元素,务必重写 hashCode() 和 equals() 方法!
import java.util.HashSet;class Student { private String name; private int id; public Student(String name, int id) { this.name = name; this.id = id; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Student student = (Student) obj; return id == student.id && name.equals(student.name); } @Override public int hashCode() { return name.hashCode() + id; } @Override public String toString() { return "Student{" + "name='" + name + "', id=" + id + '}'; }}public class CustomHashSet { public static void main(String[] args) { HashSet<Student> students = new HashSet<>(); students.add(new Student("张三", 101)); students.add(new Student("李四", 102)); students.add(new Student("张三", 101)); // 重复,不会添加 System.out.println(students); }} Collections.synchronizedSet() 或 ConcurrentHashMap.newKeySet()。null 元素。LinkedHashSet(按插入顺序)或 TreeSet(自然排序)。通过本教程,你已经掌握了 Java HashSet教程 的核心内容:创建、添加、删除、查找以及去重机制。无论你是处理用户数据、过滤日志还是做算法题,HashSet 都是你不可或缺的工具。记住关键点:重写 hashCode 和 equals,就能安全高效地使用它!
现在,快去你的项目中试试吧!
本文由主机测评网于2025-12-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127991.html