【背诵⑧】保姆级 | 零基础备赛蓝桥杯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);
            }
        }
    }
}
相关推荐
Alex Gram1 小时前
双机热备软件哪个好
java·系统架构·c#·keepalived·高可用·双机热备·双机热备软件
纳兰青华1 小时前
拼图大师:从“暴力尝试“到“动态规划“的拆字艺术
java·算法·动态规划
蓝斯49710 小时前
[原创]《C#高级GDI+实战:从零开发一个流程图》第章:增加贝塞尔曲线,上、下、左、右连接点
java·c#·流程图
前端工作日常10 小时前
我学习到的Java 的 Service 分层:itf 和 impl 到底是什么?
java·后端
xiaohaiAIgeo11 小时前
【2026年】通风柜快速风阀执行器的技术参数与选型:响应时间扭矩与寿命
人工智能·经验分享·科普知识
都叫我大帅哥11 小时前
Spring @Transactional 注解完全指南
java·spring
Java成神之路-11 小时前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
前端工作日常11 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
带刺的坐椅11 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·solon·jetty·undertow·mcp-server·htttp
luj_176812 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法