30s搞懂HashSet基本原理与方法

news/2024/9/22 14:46:04/

目录

1.原理

1.1 基于HashMap实现

1.2 实现了Set接口

1.3 实现了序列化和可克隆化

2.实现操作

2.1 添加元素add()

2.2 删除指定单个元素remove()

2.3 删除所有元素clear()

2.4 判断是否包含元素contains()

2.5 判断是否为空isEmpty()

2.6 获得大小size()

2.7 遍历HashSet

2.7.1 使用iterator()迭代器

2.7.2 for循环遍历


1.原理

1.1 基于HashMap实现

HashSet是个存数据的集合,在HashSet中只能输入一个值。

所以允许空值(默认null)

不是线程安全的(hashMap也不安全)

java">private transient HashMap map;// Constructor - 1
// All the constructors are internally creating HashMap Object.
public HashSet()
{// Creating internally backing HashMap objectmap = new HashMap();
}// Constructor - 2
public HashSet(int initialCapacity)
{// Creating internally backing HashMap objectmap = new HashMap(initialCapacity);
}// Dummy value to associate with an Object in Map
private static final Object PRESENT = new Object();

1.2 实现了Set接口

与Set一样不允许存入重复数据,而且数据是随机存取(无序的)

1.3 实现了序列化和可克隆化

便利与数据的直接存储和取出利用

2.实现操作

2.1 添加元素add()

注意重复的元素不会存入

java">hs.add("Geek");

2.2 删除指定单个元素remove()

java">hs.remove("B");

2.3 删除所有元素clear()

java">hs.clear();

2.4 判断是否包含元素contains()

返回值为boolean,若存在元素返回true,为空返回false

java"> boolean isNotEmpty = hs.contains();

2.5 判断是否为空isEmpty()

与contains恰好相反

java"> boolean con = hs.isEmpty();

2.6 获得大小size()

java">int size = hs.size();

2.7 遍历HashSet

2.7.1 使用iterator()迭代器

java">/**获取对应set的迭代器*/
Iterator itr = hs.iterator();
while (itr.hasNext()){//TODO
}

2.7.2 for循环遍历

java">for (String s : hs){//TODO
}


http://www.ppmy.cn/news/1430903.html

相关文章

学习前端第二十三天(函数表达式,箭头函数,对象)

一、函数表达式 // 普通函数允许先调用后定义,函数表达式不行 // 普通函数的函数名可以重复,后面的定义的同名函数覆盖前面的,函数表达式不行 // 代码块内的普通函数全局可见,函数表达式只有在代码块中可见 无论如何&#xff…

学术论文中常见的拉丁语及其缩写词汇解析

诸神缄默不语-个人CSDN博文目录 在学术写作中,作者经常会使用一系列的拉丁语及其缩写词。 1. et al. 全称: et alii 或 et alia意义: 和其他人使用场景: 当引用的文献有多个作者时,通常在第一作者后使用“et al.”表…

在stm32中,所需的库函数有那些

使用库函数中封装的函数来访问外设可以使得stm32开发更加方便,省去了查寄存器位操作,只用查库函数就可以了 但是使用库函数时要记住真正的其本质是获取寄存器的地址然后设置其中的位 库函数一般添加到自己创建的Lib文件夹中 库函数实际上分成了两块&…

Windows平台下的Oracle 19c补丁升级

Windows平台下的Oracle 19c补丁升级 文章目录 Windows平台下的Oracle 19c补丁升级第一章 概述第二章 安装前备份2.1 软件目录备份2.2 权限备份2.3 备份数据库 第三章 安装前检查3.1 查看数据库版本3.2 升级opatch版本 第四章 安装补丁4.1 设置环境变量4.2 关闭oracle相关服务4.…

Kali Linux扩容(使用图形化界面)

因为今天在拉取vulhub中的镜像的时候报错空间不够,因为最开始只给了20GB的空间,所以现在需要扩容了,结合了一下网上的找到了简便的解决方法 1.首先虚拟机设置->磁盘->扩展 小插曲:在对虚拟机磁盘进行扩容以后,…

日本语自然语言处理中的分词库 - GiNZA

日本语自然语言处理中的分词库 - GiNZA 0. 引言1. 日本语分词库2. GiNZA3. 使用 GiNZA 0. 引言 RAG 场景下提供精确的一个手法就是使用 Hybrid Search,Hybrid Search的另外一个检索就是全文检索。 使用 Elastic Search 进行全文检索的方案应该比较成熟&#xff0c…

屏幕太小?教你如何轻松将苹果电脑投射到安卓电视!

好几个人开组会,一台电脑怎么够看?那岂不是要好几颗脑袋挤在一起盯着屏幕?如果能将电脑屏幕投屏到大电视上,视觉就没有压力了。 将电脑屏幕投射到电视上,不仅能够让观众更加集中注意力,还能让信息的传递更加…

PgSQL之WITH Queries/Statement

PostgreSQL WITH 子句 在 PostgreSQL 中,WITH 子句提供了一种编写辅助语句的方法,以便在更大的查询中使用。 WITH 子句有助于将复杂的大型查询分解为更简单的表单,便于阅读。这些语句通常称为通用表表达式(Common Table Express…