当前位置: 首页 > news >正文

Java.数据结构.HashSet

目录

1 基本概念

2 数据结构

3 常用操作

3.1 add(E e):向HashSet中添加元素

3.2 remove(Object o):从HashSet中移除元素

3.3 contains(Object o):判断HashSet中是否包含指定元素

3.4 size():返回HashSet中元素的个数

3.5 isEmpty():判断HashSet是否为空

 4 优缺点:

5 注意事项


1 基本概念

  • 它只能存储唯一元素,不允许存储重复的元素。
  • HashSet允许存储null值,但只能存储一个null元素

2 数据结构

  • HashSet内部使用HashMap来实现,具体来说是使用一个数组加链表(或红黑树)的方式来存储元素。
  • HashSet根据元素的hashCode值将其分配到不同的桶中,将具有相同hashCode值的元素存储在同一个桶中,然后使用链表(或红黑树)来处理hashCode冲突。

3 常用操作

3.1 add(E e)向HashSet中添加元素
HashSet<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");

注意add 方法实际上是 boolea 类型 ,如果你要添加的 value 已经存在那么它将添加失败,返回False,反之返回 True,并不会像 HashMap 中的 put 一样后值覆盖前值。

3.2 remove(Object o)从HashSet中移除元素
set.remove("banana");
3.3 contains(Object o)判断HashSet中是否包含指定元素
boolean contains = set.contains("apple");  
System.out.println(contains);  // 输出: true
3.4 size()返回HashSet中元素的个数
int size = set.size();  
System.out.println(size);  // 输出: 1 (假设已移除banana)
3.5 isEmpty()判断HashSet是否为空
boolean isEmpty = set.isEmpty();  
System.out.println(isEmpty);  // 输出: false (假设集合中有元素)

 4 优缺点:

        优点:快速查找(平均时间复杂度为O(1))、高效插入和删除操作

        缺点:非线程安全、不保证顺序

5 注意事项

        HashSet不提供 get()方法来查找集合中指定的元素,但可以使用 contains()方法来判断集合中是否包含指定元素。 

相关文章:

Java.数据结构.HashSet

目录 1 基本概念 2 数据结构 3 常用操作 3.1 add(E e)&#xff1a;向HashSet中添加元素 3.2 remove(Object o)&#xff1a;从HashSet中移除元素 3.3 contains(Object o)&#xff1a;判断HashSet中是否包含指定元素 3.4 size()&#xff1a;返回HashSet中元素的个数 3.5 …...

关于懒惰学习与渴求学习的一份介绍

在这篇文章中&#xff0c;我将介绍些懒惰学习与渴求学习的算法例子&#xff0c;会介绍其概念、优缺点以及其python的运用。 一、渴求学习 1.1概念 渴求学习&#xff08;Eager Learning&#xff09;是指在训练阶段构建出复杂的模型&#xff0c;然后在预测阶段运用这个构建出的…...

sed 环境配置

参考项目来自这里&#xff1a; https://github.com/DCASE-REPO/DESED_task/tree/master/recipes/dcase2023_task4_baseline 1. 更新自己的 conda 避免一些包在旧的conda 环境中不存在&#xff1b; conda update conda使用conda 指定安装 对应版本 # CUDA 11.7 conda instal…...

黑神话:仙童,数据库自动反射魔法棒

黑神话&#xff1a;仙童&#xff0c;数据库自动反射魔法棒 Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频&#xff0c;视频请见&#xff1a;https://www.bilibili.com/video/BV1ET4wecEBk/ 此视频介绍了使用最新版的仙童代码生成器&#xff0c;将 …...

香江电器冲刺港交所上市:投资方提前撤资退出,因对赌协议而赔偿

近日&#xff0c;湖北香江电器股份有限公司&#xff08;X.J. ELECTRICS (HU BEI) CO., LTD&#xff0c;下称“香江电器”&#xff09;披露招股书&#xff0c;准备在港交所主板上市&#xff0c;国金证券为其独家保荐人。据贝多财经了解&#xff0c;香江电器曾计划在A股上市&…...

SpringSecurity实现自定义登录接口

SpringSecurity实现自定义登录接口 1、配置类 ConfigClazz&#xff08;SpringSecuriey的&#xff09; //首先就是要有一个配置类Resourceprivate DIYUsernamePasswordAuthenticationFilter diyUsernamePasswordAuthenticationFilter;/*SpringSecurity配置*/Beanpublic Securit…...

深度解析:Tkinter 界面布局与优化技巧

目录 深度解析&#xff1a;Tkinter 界面布局与优化技巧1. Tkinter 布局管理简介如何选择合适的布局管理器 2. pack() 布局管理详解嵌套布局 3. grid() 布局管理详解行列合并 4. place() 精确布局详解5. Tkinter 界面优化技巧自适应布局响应式布局资源管理 6. 项目示例&#xff…...

RCE_无回显

<aside> &#x1f4a1; 无回显 </aside> 写文件 **curl -o shell.php <http://xxxxxx.txt> wget -O shell.php <http://xxxxxx.txt>**请求带出 **curl <http://requestbin.net/r/1kiej1p1?pcat> /flag|base64 curl xxd -p /flag.xxxxxx.dnslo…...

文心一言智能体——绿色生活管家

最近&#xff0c;我在参加文心一言智能体大赛&#xff0c;这是我的智能体地址绿色生活管家&#xff0c;点击即可访问&#xff0c;大家可以去向我的智能体提问&#xff0c;提五个问题左右即可&#xff0c;真的非常感谢大家&#xff01;好人一生平安&#x1f33c;&#x1f33c;&a…...

无人机(自组穿越机,航模)-芯片选型

飞控MCU: 型号尺寸子型号参数规格备注STM325*532位ARM Cortex-M3 CPU&#xff0c;72MHz&#xff0c;256KB Flash&#xff0c;20KB RAMLQFP 48F33*332位ARM Cortex-M4 CPU&#xff0c;72MHz&#xff0c;256KB Flash&#xff0c;40KB RAMMPU6050F45*532位ARM Cortex-M4 CPU&…...

[Cocoa]_[初级]_[绘制文本如何设置断行效果]

场景 在开发Cocoa程序时&#xff0c;表格NSTableView是经常使用的控件。其基于View Base的视图单元格模式就是使用NSCell或其子类来控制每个单元格的呈现。当一个单元格里的文字过多时&#xff0c;需要截断超出宽度的文字&#xff0c;怎么实现&#xff1f; 说明 Cocoa下的文本…...

IPS和IDS有啥区别

在网络安全领域&#xff0c;入侵检测系统 (IDS) 和入侵防御系统 (IPS) 是两种关键的技术&#xff0c;旨在保护网络免受各种威胁。这两者尽管名字相似&#xff0c;但在功能、配置、以及应用场景等方面都有着显著的差异。 入侵检测系统 (IDS) IDS 是一种被动监控系统&#xff0c…...

c基础面试题

1.static和const的作用 static意为静态的&#xff0c;在C语言中可以修饰变量。如果是全局变量则只能在当前文件范围访问。 如果是函数内的局部变量则延长生命周期到整个程序。这意味着如果函数被多次调用&#xff0c;这个变量不会被重新初始化&#xff0c;而是保留上次调用结…...

选择最佳HR系统_6款产品评测与推荐

本文盘点了ZohoPeople、SAPSuccessFactors等六款主流HRMS&#xff0c;各系统各具特色&#xff0c;如ZohoPeople的全球化云管理、SAP的高定制化、Workday的实时数据分析等&#xff0c;适合不同规模企业需求&#xff0c;建议企业试用后决策。 一、Zoho People Zoho People 是一个…...

Latex技巧——参考文献中加入url和doi

有的期刊要求在参考文献里加入url或者doi, 例如下图中蓝色的字体。 在bib里编辑为下图中note行&#xff0c;也就是利用\href命令。\href后第一个{}内为网址&#xff0c;第二个{}为在参考文献中显示的蓝色文字。一般来说&#xff0c;两个{}内的文字相同。若遇到有些网址有下划线…...

安卓WPS Office v18.13.0高级版

软件介绍 WPS Office&#xff0c;金山WPS移动版&#xff0c;使用人数最多的移动办公软件套件。独有手机阅读模式&#xff0c;字体清晰翻页流畅&#xff1b;完美支持文字&#xff0c;表格&#xff0c;演示&#xff0c;PDF等51种文档格式&#xff1b;新版本具有海量精美模版及高…...

【C++力扣】917.仅仅反转字母|387.字符串中第一个唯一字符|415.字符串相加

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f525; 所属专栏&#xff1a;C深入学习笔记 &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 一、917.仅仅反转字母 1.1 题目描述…...

RxSwift系列(四)异常处理和调试操作

一、异常处理 1.catchErrorJustReturn 当遇到 error 事件的时候&#xff0c;就返回指定的值&#xff0c;然后结束。 enum MyError: Error {case Acase B }let disposeBag DisposeBag()let sequenceThatFails PublishSubject<String>()sequenceThatFails.catchErrorJ…...

Excel基础:电子表格Excel的使用技巧合集

一、内容 1.表格下拉框选择内容...

教育技术革新:SpringBoot在线教育系统开发

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理微服务在线教育系统的相关信息成为必然。开…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...