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]

如上面解释的那样,元素并没有按顺序进行存储。

转载于:https://blog.51cto.com/gomic/1375827

JAVA中的Hashset类相关推荐

  1. java中hashset_Java HashSet – Java中的HashSet

    java中hashset Java HashSet is the most popular implementation of Set interface. java.util.HashSet is ...

  2. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  3. Java中的BigDecimal类你真的了解吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:HikariCP www.jianshu.com/p/c81 ...

  4. Java中常用的类及其特点

    Java中的内部类有四种(内部类作用1.封装装类型. 2.直接访问外部类成员. 3.回调.)内部类,方便他们的外部类调用,一般不会被其它类使用,比如事件监听器之类的,外部类刚好继承了一个别的类,如果你 ...

  5. java中的stack类和C++中的stack类的区别

    文章目录 1 java中的stack类和C++中的stack类的区别 1.1 java中的stack类 1.2 C++中的stack类 1.3 分析 不经意间想到了这个问题,存到栈中的是对象的引用,还 ...

  6. Java 中的 BigDecimal 类你了解多少?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:什么?你还在使用fastjson,性能太差了个人原创+1博客:点击前往,查看更多 作者:HikariCP 链接: ...

  7. 四十一、深入Java中的 File类

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  8. java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...

    Java中所有的类都是通过直接或间接地继承( )类得到的 答:java.lang.Object 关于主机地址 192.168.19.125 (子网掩码: 255.255.255.248 ),以下说法正 ...

  9. 带有静态方法的类(java中的math类)

    带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...

最新文章

  1. oracle update from多表性能优化一例
  2. php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建
  3. UIView的几个枚举定义
  4. 第十三章、facl及用户及Linux终端
  5. 排序算法 —— 堆排序
  6. android ListView控件滑动时出现黑色背景问题解法方案
  7. mblog Mtons博客系统
  8. 一道说难不难的js题目
  9. linux centos DNS 只有主服务器的实验
  10. 什么是离线迁移(闪电立方)
  11. php 添加透明水印,php加水印的代码(支持半透明透明打水印,支持png透明背景)
  12. 利用Split函数进行多关键字检索
  13. 安装debian文件管理器
  14. 【安卓大作业】Android Studio图书管理系统 听雨轩
  15. Hi 小姐姐,这是你要的瘦身大长腿效果?
  16. HTML 利用 Web Audio API 进行音频可视化
  17. Android实时语音聊天
  18. python上手_10分钟上手python pandas
  19. 数据库——oracle
  20. JAVA输出菱形并使用绝对值_利用for循环打印实心棱形和空心棱形

热门文章

  1. 动态规划—01背包问题
  2. 《阿里巴巴数据中台实践》深入理解
  3. 学习笔记之-MySql高级之sql优化
  4. 浅析WebRtc中视频数据的接收和渲染流程
  5. SDNU 1507.E.The Binding of Isaac
  6. 潜移默化学会WPF(绚丽篇)--热烈欢迎RadioButton,改造成功,改造成ImageButton,新版导航 - AYUI框架 - 博客园...
  7. python __init__ 构造函数
  8. Spring boot 字符集编码
  9. 基本数据类型存储空间
  10. ConnectionString Property - ADO