HashSet的无序性和不重复性

简介: 无序性:无序性是指当我们往HashSet集合里添加数据时,其位置是不确定的。Eg:假设只有16个位置当你往容器中添加数据时,其可能在任何位置。表格内数字表示添加顺序:(HashSet底层是数组加链表(jdk7),jdk8中其底层是数组+链表+红黑树,下面以jdk7为例) 2 1 3 4

 无序性:无序性是指当我们往HashSet集合里添加数据时,其位置是不确定的。假设只有16个位置当你往容器中添加数据时,其可能在任何位置。

表格内数字表示添加顺序:(HashSet底层是数组加链表(jdk7),jdk8中其底层是数组+链表+红黑树,下面以jdk7为例)

2 1 3
4
5

不可重复性:当你调用add()方法添加一个数据时,其底层会先通过算法计算出其哈希值,找到添加的位置,接下来:

                       ①:当该位置上没有元素时,直接添加到该位置上,如果存在,再分以下两种情况。

                       ②:当该位置上有元素时(可能是一个,或者以链表形式存在多个),比较他们的哈希值,若不相同,就直接添加。

                       ③:当其位置上有元素且哈希值相同时,调用对象所在类的equals()方法,若返回false,则添加成功,若返回true,则添加失败。

               Eg:jdk7中添加成功后,新元素成为该位置上链表的表头。 jdk8中添加成功后,新元素成为该位置上链表的表尾。

Eg:

@Test
    public void TestHashSet(){
        HashSet s1 = new HashSet();
       //起初new一个HashSet对象,其是长度为0,并未初始化数组长度。
        System.out.println(s1.size());
        //当其进行add()操作时,此时它的容量是16,
        // 当其内部存储量达到当前容量的0.75(HashSet的加载因子)时,扩容,
        // 其每一次扩容为当前的两倍。
        s1.add(123);
        s1.add(5546);
        s1.add(234);
        System.out.println(s1);
        s1.add(123);
        //当其检测到相同的对象时,自动去除。
        System.out.println(s1);
    }

image.gif


相关文章
|
监控 安全 物联网
相比4G,5G有那些优势满足工业4.0的技术需求
5G凭借其超高速率、超低延迟、高可靠性、大连接数等核心技术优势,有力满足了工业4.0对于实时通信、灵活生产、高效自动化及大规模物联网应用的需求。
381 0
|
新零售 人工智能 搜索推荐
甄美天使新零售商城系统开发|模式方案
主流电商平台的产品模式形成,遵循了互联网产品发展的一般路径
|
Java 容器
SpringBoot中配置绑定的三种方法(@ConfigurationProperties注解)
SpringBoot中配置绑定的三种方法(@ConfigurationProperties注解)
467 0
SpringBoot中配置绑定的三种方法(@ConfigurationProperties注解)
|
数据采集 算法 大数据
一小时了解数据挖掘①:解析常见的大数据应用案例
简而言之,数据挖掘(Data Mining)是有组织有目的地收集数据,通过分析数据使之成为信息,从而在大量数据中寻找潜在规律以形成规则或知识的技术。
2506 0
|
6天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
5天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
5天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1072 4
|
8天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
673 2