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类相关推荐

  1. 计算机公开课课前互动小游戏,公开课前课堂小游戏

    引导语:一年级拼音教学小游戏玩是孩子的天性,游戏自然就会成为一年级拼音教学的常客!下面是yjbys小编收集了一些关于公开课前拼音课堂小游戏,希望对你有帮助. 篇一:公开课前课堂小游戏 适用范围: 用于 ...

  2. 网易云课堂解析_使用SQL分析网易云课堂职场提升类课程

    前言: 正值毕业季,职场相关话题毋庸置疑又再次成为热门话题,结束学校生活并不意味着学习的终结,真正走入职场才会发现学习才刚刚开始.许多职场人士为了在激烈的市场竞争中保持竞争力,都会选择在工作之余学习充 ...

  3. 关于HashSet类对象使用迭代器无法进行增删操作的问题

    问题的产生: 在学习HashSet类时遇到一个案例: 金角大王有一个紫金葫芦,里面装进了"孙行者", "行者孙","者行孙".现在来了一个& ...

  4. 菜鸟的学习之路(12) —HashSet类详解

    一.HashSet类详解: HashSet类的底层是HaskMap实现的.存入HashSet的元素是有HashMap的key来保存的.而HashMap的值是一个Object对象. HashSet中是不 ...

  5. 14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)

    本篇主要是集合框架基础和List集合,Map集合等等后续更 集合 14.1 集合框架 14.1.1 概念 14.1.2 集合架构 14.2 Collection接口 14.2.1 常用方法 14.3 ...

  6. 集合--Set集合--HashSet类、LinkedHashSet类、TreeSet类及其自然排序

    Set集合 HashSet类 import java.util.HashSet;/*Set集合:元素唯一且元素无序(存储和取出顺序不一致)的集合HashSet类概述不保证 set 的迭代顺序特别是它不 ...

  7. java输出set集合元素_java Set集合,HashSet类详细介绍

    下面要给大家介绍的就是java Set集合方面的内容,本文主要讲到了HashSet类的一些知识,主要包括了HashSet类的特点,HashSet 类的常用构造方法重载形式以及代码演示了创建两种不同形式 ...

  8. 开课吧课堂之如何创建多级类层次

    到目前分享的文章,我们会发现,我们已经用到了只含有一个超类和一个子类的简单类层次结构.然而,你可以如你所愿的建立包含任意多层继承的类层次. 前面提到,用一个子类作为另一个类的超类是完全可以接受的.例如 ...

  9. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin

    1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...

最新文章

  1. 【Github上有趣的项目】TensorKart 自动驾驶马里奥赛车(玩不了)
  2. Java solr 分词
  3. 科大星云诗社动态20210222
  4. 虚幻4蓝图快速入门(二)
  5. 一文详解图对比学习(GNN+CL)的一般流程和最新研究趋势
  6. NET Core微服务之路:基于Ocelot的API网关Relay实现--RPC篇
  7. java 删除已画出的线_如何删除java中的绘制线?
  8. 最近,前端开发把我恶心着了,为了甩锅,我写了个牛逼的日志切面!
  9. 【图像增强】基于matlab GUI暗通道图像去雾【含Matlab源码 835期】
  10. HTTP状态码及对应原因
  11. fgo日服服务器维护,FGO国服和日服哪个福利更好 圣晶石维护补偿对比
  12. 开源容灾备份工具介绍
  13. 小程序源码:收款码三合一制作
  14. 苹果电脑忘记开机密码怎么办?一段代码轻松解决
  15. 基于Python网络爬虫的小说网站数据分析
  16. SQL:查询结果升序、降序排列
  17. 吊打 CLIP 平均10个点,Meta 多模态通用模型 FLAVA真香啊
  18. ACPI相关(7)- ACPI对ata的管理
  19. sql递归查询(包含mysql、pgsql、oracle)
  20. java的ognl写文件_JAVA之:OGNL表达式练习

热门文章

  1. [转载] Python利用openpyxl模块读取excel文件内容
  2. tortoisegit 代码的回滚方式 --两种
  3. 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结
  4. java并发:线程同步机制之计数器Exechanger
  5. PlaceHolder到底什么
  6. Eclipse 快捷键整理
  7. Response.AddHeader
  8. CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)
  9. Java实现简单的在聊天面板中显示emoji
  10. mysql阻塞 事务_MySQL Innodb如何找出阻塞事务源头SQL