开课吧课堂:什么是HashSet类
HashSet扩展AbstractSet并且实现Set接口。它创建一个类集,该类集使用散列表进行存储。正像大多数读者很可能知道的那样,散列表通过使用称之为散列法的机制来存储信息。
在散列(hashing)中,一个关键字的信息内容被用来确定唯一的一个值,称为散列码(hash code)。而散列码被用来当做与关键字相连的数据的存储下标。关键字到其散列码的转换是自动执行的——你看不到散列码本身。
你的程序代码也不能直接索引散列表。散列法的优点在于即使对于大的集合,它允许一些基本操作如add( ),contains( ),remove( )和size( )方法的运行时间保持不变。
下面的构造函数定义为:
HashSet( )
HashSet(Collection c)
HashSet(int capacity)
HashSet(int capacity, float fillRatio)
第一种形式构造一个默认的散列集合。
第二种形式用c中的元素初始化散列集合。
第三种形式用capacity初始化散列集合的容量。
第四种形式用它的参数初始化散列集合的容量和填充比(也称为加载容量)。
填充比必须介于0.0与1.0之间,它决定在散列集合向上调整大小之前,有多少能被充满。具体的说,就是当元素的个数大于散列集合容量乘以它的填充比时,散列集合被扩大。对于没有获得填充比的构造函数,默认使用0.75。HashSet没有定义任何超过它的超类和接口提供的其他方法。
重要的是,注意散列集合并没有确保其元素的顺序,因为散列法的处理通常不让自己参与创建排序集合。如果需要排序存储,另一种类集——TreeSet将是一个更好的选择。
这里是一个说明HashSet的例子。
// Demonstrate HashSet.
import java.util.*;
class HashSetDemo { public static void main(String args[]) { // create a hash set HashSet hs = new HashSet(); // add elements to the hash set hs.add("B"); hs.add("A"); hs.add("D"); hs.add("E"); hs.add("C"); hs.add("F"); System.out.println(hs); }
}
下面是该程序的输出:
[A, F, E, D, C, B]
如上面解释的那样,元素并没有按顺序进行存储。
开课吧课堂:什么是HashSet类相关推荐
- 计算机公开课课前互动小游戏,公开课前课堂小游戏
引导语:一年级拼音教学小游戏玩是孩子的天性,游戏自然就会成为一年级拼音教学的常客!下面是yjbys小编收集了一些关于公开课前拼音课堂小游戏,希望对你有帮助. 篇一:公开课前课堂小游戏 适用范围: 用于 ...
- 网易云课堂解析_使用SQL分析网易云课堂职场提升类课程
前言: 正值毕业季,职场相关话题毋庸置疑又再次成为热门话题,结束学校生活并不意味着学习的终结,真正走入职场才会发现学习才刚刚开始.许多职场人士为了在激烈的市场竞争中保持竞争力,都会选择在工作之余学习充 ...
- 关于HashSet类对象使用迭代器无法进行增删操作的问题
问题的产生: 在学习HashSet类时遇到一个案例: 金角大王有一个紫金葫芦,里面装进了"孙行者", "行者孙","者行孙".现在来了一个& ...
- 菜鸟的学习之路(12) —HashSet类详解
一.HashSet类详解: HashSet类的底层是HaskMap实现的.存入HashSet的元素是有HashMap的key来保存的.而HashMap的值是一个Object对象. HashSet中是不 ...
- 14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
本篇主要是集合框架基础和List集合,Map集合等等后续更 集合 14.1 集合框架 14.1.1 概念 14.1.2 集合架构 14.2 Collection接口 14.2.1 常用方法 14.3 ...
- 集合--Set集合--HashSet类、LinkedHashSet类、TreeSet类及其自然排序
Set集合 HashSet类 import java.util.HashSet;/*Set集合:元素唯一且元素无序(存储和取出顺序不一致)的集合HashSet类概述不保证 set 的迭代顺序特别是它不 ...
- java输出set集合元素_java Set集合,HashSet类详细介绍
下面要给大家介绍的就是java Set集合方面的内容,本文主要讲到了HashSet类的一些知识,主要包括了HashSet类的特点,HashSet 类的常用构造方法重载形式以及代码演示了创建两种不同形式 ...
- 开课吧课堂之如何创建多级类层次
到目前分享的文章,我们会发现,我们已经用到了只含有一个超类和一个子类的简单类层次结构.然而,你可以如你所愿的建立包含任意多层继承的类层次. 前面提到,用一个子类作为另一个类的超类是完全可以接受的.例如 ...
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...
最新文章
- 【Github上有趣的项目】TensorKart 自动驾驶马里奥赛车(玩不了)
- Java solr 分词
- 科大星云诗社动态20210222
- 虚幻4蓝图快速入门(二)
- 一文详解图对比学习(GNN+CL)的一般流程和最新研究趋势
- NET Core微服务之路:基于Ocelot的API网关Relay实现--RPC篇
- java 删除已画出的线_如何删除java中的绘制线?
- 最近,前端开发把我恶心着了,为了甩锅,我写了个牛逼的日志切面!
- 【图像增强】基于matlab GUI暗通道图像去雾【含Matlab源码 835期】
- HTTP状态码及对应原因
- fgo日服服务器维护,FGO国服和日服哪个福利更好 圣晶石维护补偿对比
- 开源容灾备份工具介绍
- 小程序源码:收款码三合一制作
- 苹果电脑忘记开机密码怎么办?一段代码轻松解决
- 基于Python网络爬虫的小说网站数据分析
- SQL:查询结果升序、降序排列
- 吊打 CLIP 平均10个点,Meta 多模态通用模型 FLAVA真香啊
- ACPI相关(7)- ACPI对ata的管理
- sql递归查询(包含mysql、pgsql、oracle)
- java的ognl写文件_JAVA之:OGNL表达式练习