【Java】HashSet集合用法

news2025/7/18 9:02:16

 

目录

HashSet 集合特点

示例代码

手写HashSet集合

HashSet 没有Get()


HashSet 集合特点

  1. HashSet 基于HashMap 来实现的,是一个不允许有重复元素的集合
  2. HashSet 允许有 null 值
  3. HashSet 是无序的,即不会记录插入的顺序
  4. HashSet集合实现了Set接口
  5. HashSet 没有Get(),所以不能使用普通for循环遍历

示例代码

package com.collection.Demo09;

import java.util.HashSet;
import java.util.Iterator;

public class Test02 {
    public static void main(String[] args) {
        HashSet<String> strings = new HashSet<>();
        strings.add("mayilt01");
        strings.add("mayilt02");
        strings.add("mayilt03");
        strings.add("mayilt03"); //不允许有重复值,∵底层基于HashMap集合实现,
        //而HashSet.add() 底层存放元素 采用HashMap集合 Key 来存放,HashMap key值是不允许重复
        /**
         *     public boolean add(E e) {
         *         return map.put(e, PRESENT)==null;
         *     }
         */
        strings.add(null);//HashMap允许存放Key值 是为null
        Iterator<String> iterator = strings.iterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next());//null,mayilt01,mayilt03,mayilt02,
            System.out.print(","); //上面输出结果说明:HashSet是无序的,∵底层基于HashMap集合实现
        }
    }
}

手写HashSet集合

package com.collection.Demo09;

import java.util.HashMap;

/**
 * 手写HashSet集合
 */
public class MayiktHashSet<E> {
    /**
     * HashSet 底层是基于 HashMap 集合实现
     * 元素的值 就是为 HashMap 中的key
     */
    private HashMap<E, Object> map;
    private static final Object PRESENT = new Object();//小写转大写,快捷键 Ctrl+Shift+u

    public MayiktHashSet() {
        map = new HashMap<>();
    }

    public void add(E e) {
        map.put(e, PRESENT);
    }

    @Override
    public String toString() {
        return "MayiktHashSet{" +
                "map=" + map +
                '}';
    }

    public static void main(String[] args) {
        MayiktHashSet<Object> hashSet = new MayiktHashSet<>();
        hashSet.add("mayikt01");
        hashSet.add("mayikt02");
        hashSet.add("mayikt03");
        hashSet.add("mayikt03");//不允许重复值,下面输出中只有一个mayikt03
        System.out.println(hashSet);
        //MayiktHashSet{map={mayikt03=java.lang.Object@4554617c,
        // mayikt01=java.lang.Object@4554617c,
        // mayikt02=java.lang.Object@4554617c}}
    }

}

HashSet 没有Get()

package com.collection.Demo09;

import java.util.HashSet;

public class Test03 {
    public static void main(String[] args) {
        HashSet<String> strings = new HashSet<>();
        strings.add("mayikt01");
        strings.add("mayikt02");
        strings.add("mayikt03");
        //HashSet 没有get(), ∵底层基于HashMap实现的,HashMap 存放Key是散列的,就没有使用index访问元素
        //∴不能够使用普通的for循环
//        for (int i = 0; i < strings.size(); i++) {}
        for (String str : strings) {
            System.out.println(str);
        }
    }
}

下一篇文章:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1148498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

07 MIT线性代数-求解Ax=0:主变量,特解 pivot variables, special solutions

前面定义了矩阵的列空间和零空间&#xff0c;那么如何求得这些子空间呢&#xff1f; 1. 计算零空间 Nullspace A的零空间即满足Ax0的所有x构成的向量空间 对于矩阵A进行“行操作”并不会改变Axb的解&#xff0c;因此也不会改变零空间 unchanged 第一步消元: echelon 阶梯型 …

《进化的力量》摘抄

作者&#xff1a;刘润 不是最强壮的&#xff0c;也不是最聪明的&#xff0c;而是最适合的才能生存。 序言 1、成功&#xff0c;一定是因为我们做对了什么。物竞天择&#xff0c;适者生存。但是&#xff0c;面对“天择”逻辑的复杂性&#xff0c;我们其实并不知道什么是对的。…

名人问题(分类讨论),士兵问题(找规律)

【名人问题】n个人中的名人是指这样一个人:他不认识别人&#xff0c;但是每个人都认识他。任务就是找出这样一个名人&#xff0c;但只能通过询问“你认识他/她吗?”这种问是来完成。设计一个高效算法&#xff0c;找出该名人或者确定这群人中没有名人。你的算法在最坏情况下需要…

nginx 进程模型

文章目录 nginx运行模式与进程模式进程模式流程图默认初始化运行模式与进程模式(宏展开)cpu_affinity多CPU绑定合理性判定Nginx的daemon创建&#xff08;os/unix/ngx_daemon.c&#xff09;运行模式、进程模式启动 多进程模式下master处理流程设置进程信号、初始化信号掩码、屏蔽…

『第十一章』数据持久化:CoreData 与 CloudKit

在本篇博文中,您将学到如下内容: 1. 苹果“元老”数据库 CoreData 简介2. CoreData 组成要素3. NSPersistentContainer 对象4. 将 CoreData 集成到项目中5. CoreData 基本操作:增删改查(CRUD)5.1 新建5.2 删除5.3 查询和更新6. CoreData 与 SwiftUI7. 用泛型精简瓶颈代码8. …

多元系的热力学基本方程

多元系&#xff1a;含有两种或两种以上的化学组分的系统 欧勒定理 齐函数成立的充要条件&#xff1a; 多元系的热力学函数 如果系统有K个组元&#xff1a;任何广延量(V, U, S)都是其广延变量的一次齐函数 任何强度量都是其广延变量的零次齐函数 全部选择广延量变量时 由齐函…

UWB室内定位技术

室内定位系统方案中&#xff0c;UWB室内定位技术目前应用较多&#xff0c;得益于UWB室内定位10-30厘米的超高定位精度。 UWB全称是超宽带技术&#xff0c;它是一种无线载波通信技术。 UWB不采用载波&#xff0c;而是利用纳秒至微微秒级的非正弦波窄脉冲传输数据。 目前根据使用…

腾讯云轻量应用服务器地域北京、上海和广州怎么选择比较好?

腾讯云轻量应用服务器地域是指轻量服务器数据中心所在的地理位置&#xff0c;如上海、广州和北京等地域&#xff0c;如何选择地域&#xff1f;腾讯云百科txybk.com建议地域选择遵循就近原则&#xff0c;用户距离轻量服务器地域越近&#xff0c;网络延迟越低&#xff0c;速度就越…

DAMNets

方法 体会 实验充分&#xff0c;不愧是ICLR&#xff0c;但作者未提供代码

代码审计-锐捷EG易网关 管理员账号密码泄露漏洞

出现漏洞的文件在 /login.php 审查源码我们发现通过命令拼接的方式构造命令执行 发送请求包&#xff0c;拼接 CLI指令 show webmaster user /login.php usernameadmin&passwordadmin?showwebmasteruser漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望…

GO学习之 通道(nil Channel妙用)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

网络设备远程登录和管理-双厂商

✍ 设备开局都要做哪些配置&#xff1f; ✍ 思科华为的配置命令有什么区别&#xff1f; ✍ 实战演示不同操作系统的配置&#xff1b; -- 本地设备调试 - console接口配置 -- 远程设备管理 - telnet 不加密 | ssh 加密的 -- web界面调试 - 补充的作用 -- SD…

idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...

idea中Run/Debug Python项目报错 Argument for NotNull parameter module of ... idea中运行Python项目main.py时报错&#xff1a; Error running main: Argument for NotNull parameter module of com/intellij/openapi/roots/ModuleRootManager.getInstance must not be nu…

电脑提示由于找不到vcruntime140.dll文件,教你四个解决方案

本文将介绍vcruntime140.dll文件的定义、作用以及丢失的原因&#xff0c;并提供四个解决方案来解决这个问题。 首先&#xff0c;让我们来了解一下vcruntime140.dll文件是什么。vcruntime140.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;它是运行使用…

从0到1之微信小程序快速入门(基础知识)

目录 JSON 配置文件 WXML 模板 WXSS 样式 JS 逻辑交互 微信小程序中&#xff0c;每个页面由4 个基本文件组成&#xff0c;它们分别是&#xff1a;js文件(页面的脚本文件&#xff0c;存放页面的数据、事件处理函数等)、json文件(当前页面的配置文件&#xff0c;配置窗口的外…

【C++的OpenCV】第十四课-OpenCV基础强化(二):访问单通道Mat中的值之at()、ptr()、iscontinuous()

&#x1f389;&#x1f389;&#x1f389; 欢 迎 各 位 来 到 小 白 p i a o 的 学 习 空 间 &#xff01; \color{red}{欢迎各位来到小白piao的学习空间&#xff01;} 欢迎各位来到小白piao的学习空间&#xff01;&#x1f389;&#x1f389;&#x1f389; &#x1f496;&…

Python——新建工程/引入本地库

文章目录 前言一、创建项目及文件二、之前创建项目未勾选Inherit global site-packages三、缺少第三方库报错pywpswin32commarkupsafe前言 PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其…

【论文解读】单目3D目标检测 LPCG(ECCV 2022)

本文分享单目3D目标检测&#xff0c;LPCG模型的论文解读&#xff0c;了解它的设计思路&#xff0c;论文核心观点&#xff0c;模型结构&#xff0c;以及效果和性能。 目录 一、LPCG 简介 二、论文核心观点 三、思路框架 四、核心观点——单目3D目标检测的标签中&#xff0c;…

MySQL数据库 #5

文章目录 一、Python操作MySQL1.pymysql的基本操作2.pymysql补充说明1.查看补充2. 增删改&#xff0c;自动确认 3.SQL注入问题1.输入对的用户名就可登录2.输入错的用户名也可以登录针对上述的SQL注入问题&#xff0c;核心在于手动拼接了关键数据 二、视图1.什么是视图2. 为什么…

RPC与HTTP的关系

首选理清楚关系 RPC与HTTP是两个不同维度的东西 HTTP 协议&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff0c;又叫做超文本传输协议&#xff0c;是一种传输协议&#xff0c;平时通过浏览器浏览网页网页&#xff0c;用到的就是 HTTP 协议。 而 RPC&#xff0…