Java -- HashSet的全面说明-Map接口的常用方法-遍历方法

目录

1. HashSet的全面说明

2. Map接口实现类的特点

注意:讲的是JDK8的Map接口特点

3. Map接口的常用方法

4. Map遍历方法


1. HashSet的全面说明

1. HashSet实现了Set接口

2. HashSet实际上是HashMap

3. 可以存放null值,但是只能有一个null

4. HashSet不保证元素是有序的,取决于hash后,再确定索引的结果

5. 不能保证重复元素/对象,在前面Set接口使用已经讲过


2. Map接口实现类的特点

注意:讲的是JDK8的Map接口特点

1. Map与Collection并列存在,用于保存具有映射关系的数据:k-v

2. Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中

3. Map中的key不允许重复,原因和HashSet一样

4. Map的key可以是null,value也可以为null,注意key为null,只能有一个(key不能重复),value为null,可以多个。

5. Map中的value可以重复

6. 常用String类作为Map的key

7. key和value之间存在单向一对一关系,通过指定的key总能找到对应的value

8. Map存放数据的key-value示意图,一对一k-v是放在一个Node中的,有因为Node实现了Entry接口,有些书上也说 一对k-v就是一个Entry


3. Map接口的常用方法

1. put:添加 

2. remove:根据键删除映射关系

3. get:根据键获取值

4. size:获取元素个数

5. isEmpty:判断个数是否为0

6. clear: 清除

7. containsKey: 查找键是否存在

// map的常用方法Map map = new HashMap();map.put("邓超",new Book("",100));map.put("邓超","孙俪");map.put("邓超","孙俪");map.put("王宝强","马蓉");map.put("六",null);map.put(null,"刘亦菲");System.out.println("map="+map);// remove 根据键删除映射关系map.remove(null);System.out.println("map="+map);// get:根据键获取值Object o = map.get("六");System.out.println("val="+o);//size :获取元素个数System.out.println("k-v="+map.size());// isEmpty:判断个数是否为0System.out.println(map.isEmpty());//clear:清除k-vmap.clear();System.out.println("map="+map);//containsKey:查找键是否存在System.out.println(map.containsKey("王宝强"));

4. Map遍历方法

 Map map = new HashMap();map.put("邓超", new Book("", 100));map.put("邓超", "孙俪");map.put("邓超", "孙俪");map.put("王宝强", "马蓉");map.put("六", null);map.put(null, "刘亦菲");// 第一组:先取出 所有的Key,通过Key取出对应的ValueSet keySet = map.keySet();// 增强forSystem.out.println("=====第一种=====");for (Object key : keySet) {System.out.println(key + "-" + map.get(key));}// 2. 迭代器Iterator iterator = keySet.iterator();while (iterator.hasNext()) {Object key = iterator.next();System.out.println(key + "-" + map.get(key));//第二组:把所有的values取出Collection values = map.values();//可以使用所有Collection使用的所有遍历方法// 增强forSystem.out.println("====取出所有的values for===");for (Object value : values) {System.out.println(value);}// 迭代器System.out.println("====取出所有的values 迭代器===");Iterator iterator1 = values.iterator();while (iterator1.hasNext()) {Object value = iterator1.next();System.out.println(value);}// 第三组 通过EntrySet来获取 k-vSet entrySet = map.entrySet();// 增强forSystem.out.println("====取出所有的values for 第三种方式===");for (Object entry :entrySet) {// 将entry转成Map.EntryMap.Entry m = (Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());}//迭代器System.out.println("====取出所有的values 迭代器 第四种方式===");Iterator iterator2 = entrySet.iterator();while (iterator2.hasNext()) {Object entry =  iterator2.next();//System.out.println(next.getClass());// hashmapnode -- 实现了 map.entryMap.Entry m =(Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());

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

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

相关文章

【python】类型注解

参考【为什么越来越多Python项目都在写类型注解?】 https://www.bilibili.com/video/BV1sW81zbEkD/?share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3代码示例使用变量 : 类型名 来注解。""" python类型注解 """…

零基础入门PostgreSQL教学视频,持续更新

PostgreSQL数据库在国内的迅速发展,引起了很多数据库从业者的注意,不少人都想学习这个热门的技术,但是毕竟有PostgreSQL有自己的特点与优势,不同于Oracle、MySQL等数据库,想要快速入门PostgreSQL技术需要下一些功夫。一…

PageAdmin与WordPress哪个适合企业建站

对于企业建站需求,PageAdmin和WordPress各有特点,以下是综合对比分析: ‌功能与专业性‌ ‌PageAdmin‌:专为企业级网站设计,内置自定义字段、表单和多站点管理功能,适合需要高定制化的企业官网、政府或学校…

微服务单元测试组件

背景 微服务的调试,哪怕是简单问题,需要启动9个服务,ui/nginx 网关 应用 auth 基础数据服务 redis nacos 平台服务 ,效率差得不行,准备开发一个支持微服务环境的单元测试组件, 组件解决3个问题&#xff1a…

从零到一的 Python CI/CD 实战指南:用 GitHub Actions 与 Jenkins 打造稳定、可持续交付的工程力

从零到一的 Python CI/CD 实战指南:用 GitHub Actions 与 Jenkins 打造稳定、可持续交付的工程力 当我们把第一行 Python 程序跑通时,成就感像破土的新芽;而当它在每次提交后自动被测试、打包、发布、上线,稳定服务成千上万的用户,那是“工程化”的成熟。本文带你从概念到…

如何在保持人设新鲜感的同时,强化受众记忆点?

保持人设新鲜感与强化受众记忆点,本质是 “动态创新” 与 “核心稳定” 的平衡艺术。既需通过有序变化避免受众审美疲劳,又需让核心特质在重复中加深烙印,关键在于建立 “锚点稳定、外延流动” 的内容体系。一、锚定 “核心记忆单元”&#x…

Ubuntu 22.04 离线环境下 Python 包与 FFmpeg 安装全攻略​

Ubuntu 22.04 离线环境下 Python 包与 FFmpeg 安装全攻略 在没有网络连接的 Ubuntu 22.04 环境中安装软件包常常会遇到各种依赖问题,尤其是 Python 库和 FFmpeg 这类依赖复杂的工具。 本文将详细介绍如何在离线环境中安装指定的 Python 包(包括 OpenCV、…

ESP32 I2S音频总线学习笔记(六):DIY蓝牙音箱教程

往期相关文章: ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础 ESP32 I2S音频总线学习笔记(二):I2S读取INMP441音频数据 ESP32 I2S音频总线学习笔记(三)&#…

springboot博客实战笔记02

一、评论功能: 注意要先登录之后才能进行评论,所有把评论加入到登录拦截器当中 Overridepublic void addInterceptors(InterceptorRegistry registry) {//拦截test接口,后续实际遇到需要拦截的接口时,在配置为真正的拦截接口regis…

ThinkPHP+Mysql 灵活用工小程序-技术深度解析与实践指南

一、模块设计分包商:税地注册公司,用于在当地申请有利的税收政策,是实际报税公司。 代理商:代理商可以邀请客户使用本平台,平台会给予代理商一定的服务费差价作为佣金。 客户:使用本平台进行工资发放的…

开源数据发现平台:Amundsen 第1部分:基础入门与本地环境设置

Amundsen 是一个数据发现和元数据引擎,旨在提高数据分析师、数据科学家和工程师与数据交互时的生产力。目前,它通过索引数据资源(表格、仪表板、数据流等)并基于使用模式(例如,查询频率高的表格会优先于查询…

Linux编程--进程

1、基本概念:进程:是程序动态执行的过程,包括创建、调度、消亡程序:存放在外存中一段数据的集合虚拟地址:进程使用的逻辑地址,有操作系统管理,不直接对应物理内存物理地址:实际内存的…

【开源工具】基于硬件指纹的“一机一码”软件授权系统全实现(附完整源码)

🚨 紧急预警!你的软件正在被白嫖?这套Python软件加密授权方案让破解者当场崩溃 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自每一个灵感闪现的夜晚。愿以开源之火,点亮前行之路。 🐋 希望大家多多支持…

机器学习算法篇(八)-------svm支持向量机

目录 ​​1. SVM 的核心原理(必须掌握)​​ ​​2. Python 中的实践重点​​ ​​(1) Scikit-learn 的 SVM 实现​​ ​​(2) 数据预处理​​ ​​(3) 模型评估与调优​​ ​​3. 学习侧重点优先级​​ ​​4. 经典案例实践方向​​ ​​5. 学习…

发票查验接口接收参数说明-PHP语言集成-财务管理

发票验真服务接口可实时联网核验发票真伪,查验一致时返回全票面信息。其支持核验增值税发票管理系统开具发票的真伪,且能进行发票批量查验,当日开具的发票当日即可查验。同时,结合发票识别接口可实现自动识别发票信息核验&#xf…

Uniapp物联网平台登录与温湿度监测系统

下面是一个完整的Uniapp物联网平台实现,包含登录功能和温湿度监测系统。这个解决方案采用现代化UI设计,模拟了物联网平台的核心功能。文章末尾提供源码下载。 系统功能说明 这个Uniapp物联网平台登录与温湿度监测系统包含以下核心功能: 1.…

【企业架构】TOGAF概念之四(终结)

导读:学习TOGAF(The Open Group Architecture Framework,开放组架构框架)相关概念的意义和价值,体现在它为企业架构(Enterprise Architecture, EA)实践提供了标准化方法论、跨领域协同框架、战略…

centos 怎么部署 vscode 网页版

安装编译工具 下载适用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷贝路径,下载文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的关键字 limit 和offset

核心概念LIMIT (限制): 指定查询最多返回多少行记录。OFFSET (偏移): 指定在开始返回记录之前要跳过多少行记录。它定义了结果集的起始点。核心前提: 必须 使用 ORDER BY 子句来确保分页结果的顺序稳定和可预测。示例: 假设 employees 表有 100 条记录&a…

git config的配置全局或局部仓库的参数: local, global, system

git config的范围参数: local, global, system1. --local: 作用于当前仓库2. --global: 作用于当前用户的全局范围的 Git 仓库3. --system: 作用于系统范围内的 Git 仓库4. 注意事项参考链接1. --local: 作用于当前仓库 --local: 这个参数的作用范围是当前仓库。其配置的参数保…