HashSet继承自AbstractSet,实现了Set接口、Cloneable、Serializable接口。

构造函数

 public HashSet() {map = new HashMap<>();}public HashSet(Collection<? extends E> c) {map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));addAll(c);}
public HashSet(int initialCapacity, float loadFactor) {map = new HashMap<>(initialCapacity, loadFactor);}
public HashSet(int initialCapacity) {map = new HashMap<>(initialCapacity);}
HashSet(int initialCapacity, float loadFactor, boolean dummy) {map = new LinkedHashMap<>(initialCapacity, loadFactor);}

通过hashmap实现Set。

add方法

 public boolean add(E e) {return map.put(e, PRESENT)==null;}

其中添加的e在map中是作为Key,所以没有重复。具体是根据HashMap的put方法

Java HashSet相关推荐

  1. Java HashSet和HashMap源码剖析

    转载自 Java HashSet和HashMap源码剖析 总体介绍 之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说Ha ...

  2. Java HashSet和Java HashMap

    Java HashSet Java 集合框架 HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合. HashSet 允许有 null 值. HashSet 是无序的,即不会记 ...

  3. JAVA Hashset求集合的交集并集差集

    JAVA Hashset求集合的交集并集差集 Hashset是Set接口较为常见的一个子类,该子类的最大特点是不允许保存重复的元素,并且所有的内容都采用散列(无序)的方式进行存储. package c ...

  4. java hashset应用_三.java集合的应用

    目录 需求一:存放学生信息 定义学生类,按年龄升序,将学生信息存放在集合中,遍历学生的信息(Student注释部分为后续的HashSet使用,此处可忽略) 思路:①定义一个学生类,声明name,age ...

  5. Java HashSet源码解析

    本解析源码来自JDK1.7,HashSet是基于HashMap实现的,方法实现大都直接调用HashMap的方法 另一篇HashMap的源码解析文章 概要 实现了Set接口,实际是靠HashMap实现的 ...

  6. java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet

    前两篇文章分别分析了Java的ArrayList和LinkedList实现原理,这篇文章分析下HashSet和LinkedHashSet的源码.重点讲解HashSet,因为LinkedHashSet是 ...

  7. Java HashSet的实现原理详解

    HashSet是Java Map类型的集合类中最常使用的,本文基于Java1.8,对于HashSet的实现原理做一下详细讲解. (Java1.8源码:http://docs.oracle.com/ja ...

  8. java hashset 实现原理_深入Java集合学习系列:HashSet的实现原理

    Updated on 九月 8, 2016 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持. ...

  9. java hashSet

    package demo;import java.util.HashSet; import java.util.Iterator;/*** HashSet是一个集合数据类型* hashset中的数据不 ...

  10. java hashset 实现_HashSet实现原理分析(Java源码剖析)

    本文将深入讨论HashSet实现原理的源码细节.在分析源码之前,首先我们需要对HashSet有一个基本的理解. HashSet只存储不同的值,set中是不会出现重复值的. HashSet和HashMa ...

最新文章

  1. Python 正则表达式
  2. 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
  3. 寻找想改变人工智能的“大人物”!2019百度奖学金正式启动
  4. 知道接口地址 如何传数据_如何选显示器连接线?四种主流接口要知道
  5. SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制
  6. java int biginteger_[十六]基础类型BigInteger简介
  7. VS Code远程连接矩池云GPU主机
  8. keyshot环境素材文件_超赞|15个不翻墙免费可商用矢量素材下载网站推荐
  9. 水晶报表合并模块部署指南(.Net2.0,VS2005)
  10. 微信windows版_微信Windows版更新3.0:小程序可添加至桌面
  11. DM6437 平台概况
  12. 桌面计算机图标固定位置,win10桌面图标如何固定位置|win10电脑桌面图标固定位置方法...
  13. linux文件加解密,linux 系统下对文件进行加解密的方法参考总结
  14. Spring Cloud 五大组件
  15. CPython是什么?PyPy是什么?Python和这两个东西有什么关系
  16. mariadb galera 故障恢复
  17. Java EE入门教程系列第一章Java EE的概述(一)——初识Java EE
  18. 铁棍山药到底好在哪儿?
  19. php redis 群发邮件,redis的简单使用 异步发送邮件
  20. php masonry,jQuery Masonry瀑布流布局详解

热门文章

  1. wps打开word是绿色的怎么解决?
  2. Problem A: 薪酬计算
  3. WWF(Windows Workflow Foundation)的简介
  4. 量化交易服务器系统选择,量化交易该选取什么云服务器
  5. 小程序识别企业微信二维码功能
  6. 多商户商城系统-v2.2.3版本发布
  7. 小程序中maring-top、maring-left、maring-right、maring-bottom失效/没有用的原因及解决方案
  8. 风控黑名单库的使用与判断指南
  9. 【网络文摘】一位36岁程序员的困惑
  10. 史上非常简单、快速的解决Excel导出遇到Excel导出错误