【背诵⑧】保姆级 | 零基础备赛蓝桥杯Java组| 哈希表set的使用

当谈到Java中的哈希表时,我们通常指的是HashSet,它是基于哈希表实现的Set接口的一个类。下面是关于Java哈希表(HashSet)的使用知识点和示例代码:

知识点:

  1. 哈希表(HashSet)特点

    • 不允许存储重复元素。
    • 不保证集合中元素的顺序,即不保证集合中元素的存储顺序和插入顺序一致。
    • 允许存储null元素。
  2. 底层实现

    • HashSet底层是由HashMap实现的,HashSet中的元素被存储为HashMap的key,value统一为一个占位对象(通常为PRESENT)。
  3. 添加元素

    • 使用add()方法向HashSet中添加元素。
  4. 判断元素是否存在

    • 使用contains()方法判断HashSet中是否包含某个元素。
  5. 删除元素

    • 使用remove()方法从HashSet中删除指定元素。
  6. 遍历元素

    • 可以使用增强for循环或迭代器来遍历HashSet中的元素。

示例代码:

java 复制代码
import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        // 创建一个HashSet
        HashSet<String> set = new HashSet<>();

        // 添加元素
        set.add("apple");
        set.add("banana");
        set.add("orange");

        // 判断元素是否存在
        boolean containsBanana = set.contains("banana");
        System.out.println("Contains 'banana': " + containsBanana);

        // 删除元素
        set.remove("orange");

        // 遍历集合
        System.out.println("Elements in set:");
        for (String element : set) {
            System.out.println(element);
        }
    }
}

在这个示例中,我们创建了一个HashSet对象,向其中添加了几个元素,然后检查了是否包含指定元素,删除了一个元素,并且最后遍历了HashSet中的所有元素。

当HashSet为空时,可以使用isEmpty()方法进行判断

java 复制代码
import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        // 创建一个空的HashSet
        HashSet<String> set = new HashSet<>();

        // 添加元素
        set.add("apple");
        set.add("banana");
        set.add("orange");

        // 判断HashSet是否为空
        if (set.isEmpty()) {
            System.out.println("HashSet is empty");
        } else {
            System.out.println("HashSet is not empty");

            // 遍历集合
            System.out.println("Elements in set:");
            for (String element : set) {
                System.out.println(element);
            }
        }
    }
}
相关推荐
行者全栈架构师1 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 小时前
mac(m5)平台编译openjdk
java
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
东坡白菜2 天前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈
唐青枫2 天前
Java Tomcat 实战指南:从 Servlet 容器到 Spring Boot 部署
java
wsaaaqqq2 天前
roudan:自由选择实体、灵活操作数据、快速写入数据库的 Java 框架
java