集合框架 Map的常见使用及循环的五种方式

news2024/9/22 11:37:40

目录

    • 一、Map常见方法使用
    • 二、Map循环的五种循环方式方式

一、Map常见方法使用

Java的集合框架中的Map接口表示一组键值对,并提供了各种方法来操作这些键值对。以下是Map接口中常见的方法:

在这里插入图片描述

代码示例如下:

@Test
    public void HashMapTest() {
            Map map = new HashMap();
            map.put(1,"老大");  //后面被remove()方法移出了
            map.put(2,"老二");  //put()添加键值
            map.put(3,"老三");
            System.out.println("长度为:"+map.size());//获取长度
            System.out.println(map.get(1));//通过key取value
            System.out.println(map.containsKey(2));//查询hashMap中是否存在某个键
            System.out.println(map.remove(1));//移除键,返回对应的value
            System.out.println(map.keySet());//返回一个存有key的set
            System.out.println(map.values());//返回一个存有value的collection
            map.clear();//清空hashMap
            System.out.println("长度为:"+map.size());

    }

输出效果如下:

长度为:3
老大
true
老大
[2, 3]
[老二, 老三]
长度为:0

二、Map循环的五种循环方式方式

方法1:

@Test
    public void show1(){
        Map map1=new HashMap();//创建一个HashMap
        map1.put(1,"老大"); //向HashMap中添加键值对
        map1.put(2,"老二");
        map1.put(3,"老三");

        Set set = map1.keySet();//获取HashMap中的键集合
        for (Object o : set) {    //遍历键集合
            Object val=map1.get(o);       //获取键对应的值
            System.out.println(o+"\t"+val);  //输出键和值
        }
    }

方法1通过key的set集合进行遍历,然后通过key(键)来取map1的value(值)

方法2:

  //获取HashMap中的键值对
        Set set = map1.entrySet();
        //遍历HashMap中的键值对
        for (Object o : set) {
          Map.Entry entry=(Map.Entry) o; 	//将键值对转换为Map.Entry类型
          System.out.println(entry.getKey()+"\t"+entry.getValue());//输出键和值
        }

方法2通过键值对转换为Map.Entry类型进行遍历获取键值对

方法3:

		Collection col = map1.keySet();
        for (Object o : col) {
           Object val=map1.get(o);//获取键对应的值
           System.out.println(o+"\t"+val);
        }

方法3直接取出map1的value并放在collection中,然后将val循环遍历

方法4:

	Iterator ite=map1.keySet().iterator();//使用Iterator迭代器 获取HashMap中的键集合
        while (ite.hasNext()){
            Object o=ite.next();      //获取map中的键
            Object val=map1.get(o);   //获取map中对应键的值
            System.out.println(o+"\t"+val);
        }

方法4使用迭代器遍历循环 获取键和值

方法5:

	 Iterator ite=map1.entrySet().iterator();
        while (ite.hasNext()){
            Object o=ite.next();
            Map.Entry entry=(Map.Entry) o; //将键值对转换为Map.Entry类型
            System.out.println(entry.getKey()+"\t"+entry.getValue());
        }

方法5使用迭代器遍历循环 再将键值对转换为Map.Entry类型 获取键和值

五种方法运行效果如下:

1 老大
2 老二
3 老三

总结:
Map在Java中被广泛使用,它提供了高效的键值对存储和检索方式,适用于各种场景,例如缓存、数据查找和索引等。常用的实现类包括HashMap、TreeMap和LinkedHashMap等。

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

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

相关文章

为什么大型服务器要用 Linux 系统?

为什么大型服务器要用 Linux 系统? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&#xff…

基于JAVA+SpringBoot的咖啡商城

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着互联网的普及和发…

JavaWeb实验报告

JavaWeb实验报告 JavaWeb实验报告 2024 年 1 月 7 日 课程名称: JavaWeb 实验名称: 期末作业 班级: 姓名 同组人: 指导教师评定&#xff…

【一文搞定】Linux、Mac、Windows安装Docker与配置教程!

【一文搞定】Linux、Mac、Windows安装Docker与配置教程! 文章目录 【一文搞定】Linux、Mac、Windows安装Docker与配置教程!一、Windows 安装1.1 安装与启用 Hyper-V1.2 安装 WSL1.3 Docker Desktop 官方下载1.4 安装Docker Desktop 二、MacOS 安装2.1 Do…

已解决 | Go Error: redeclared as imported package name 问题

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

杨中科 ASP.NET Core前后端分离开发

一、 前后端分离 1、传统MVC开发模式: 前后端的代码被放到同一个项目中,前端人员负责编写页面的模板,而后端开发人员负责编写控制器和模型的代码并且“套模板”。 缺点: 互相依赖,耦合性强,责任划分不清。 2、主流的“前后端分离…

数据库基本知识2

目录 为保证数据库是可恢复的,登记日志文件时 排他锁 并发操作带来的数据不一致性 数据模型的三要素 数据独立性 为保证数据库是可恢复的,登记日志文件时 为保证数据库是可恢复的,登记日志文件时必须遵循两条原则: 1. 登记的…

Redis Geo:掌握地理空间数据的艺术

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Redis Geo:掌握地理空间数据的艺术 前言Redis Geo基本概念Geo模块的目的工作原理地理坐标系统 GEO的分值1. 经纬度范围2. 二分编码3. Base32编码4. 精度为什么使用Geohash? GEO…

【设计模式】一文理解记住设计模式的原则

目录——阅读所需预计5-10分钟 🎖️前言🎯单一职责原则📣1. 定义💞2. 定义很抽象,咱继续看🎉3. 举几个栗子💞4. 以上栗子出现了一个问题,单一职责的划分究竟可以分多细👉…

计算机毕业设计-----ssm+mysql实现的JavaWeb酒店管理系统

项目介绍 本项目为基于ssmmysql实现的JavaWeb酒店管理系统; 主要功能包括: 管理员登录,收入统计,客房管理,商品管理,客房预订,住宿登记,财务统计,旅客管理,接待对象管理等功能。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上…

解压方法之一 zip

文章目录 解压方法之一 zip语法参数参考实例仅保存文件名更多信息 解压方法之一 zip … _linux-beginner-zip: Linux zip命令的功能是用于压缩文件,解压命令为unzip。 通过zip命令可以将很多文件打包成.zip格式的压缩包,里面会包含文件的名称、路径、…

#define宏定义的初探

前言&#xff1a; 最基本的#define定义方式 #define可以定义宏&#xff0c;这点相信大家并不陌生&#xff0c;其定义的方式十分简单&#xff0c;给大家随便来一个最简单、最基础的定义方式看看&#xff1a; #include<stdio.h> #define a 3 int main() { printf(&quo…

CSAPP cache lab - Optimizing Matrix Transpose

CSAPP cache lab part B 矩阵转置 矩阵转置是一种操作&#xff0c;它将矩阵的行和列互换位置&#xff0c;即将原始矩阵的行变为转置矩阵的列&#xff0c;将原始矩阵的列变为转置矩阵的行。转置操作可以通过改变矩阵的布局来方便地进行某些计算和分析。 假设有一个mn的矩阵A&…

java回溯算法、最短路径算法、最小生成树算法

回溯算法 回溯算法实际上一个类似枚举的搜索尝试过程&#xff0c;主要是在搜索尝试过程中寻找问题的解&#xff0c;当发现已不满足求解条件时&#xff0c;就“回溯”返回&#xff0c;尝试别的路径。 最短路径算法 从某顶点出发&#xff0c;沿图的边到达另一顶点所经过的路径中…

autodl学术加速

今天使用autodl加载预训练BERT模型失败&#xff0c;在官方文档里面找到了官方给的代理使用方法。 直接在bash输入&#xff1a; 开启学术加速&#xff1a; source /etc/network_turbo取消学术加速&#xff1a; unset http_proxy && unset https_proxy据说是只能访问这…

.pings勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着科技的发展&#xff0c;网络空间中的威胁也日益猖獗&#xff0c;其中之一就是勒索病毒&#xff0c;而.pings 勒索病毒则是其中的一种。本文将深入介绍.pings 勒索病毒的特征、恢复被其加密的数据文件的方法&#xff0c;并提供预防措施&#xff0c;以保障…

Python武器库开发-武器库篇之敏感路径扫描器开发(四十二)

Python武器库开发-武器库篇之敏感路径扫描器开发(四十二) 我们在信息收集的过程中&#xff0c;会发现部署的目标网站之后会有很多的敏感文件&#xff0c;比如说配置文件&#xff08;.cfg)、数据文件(.sql)、目录文件&#xff08;/backup /conf /admin&#xff09;。这些配置的…

WSL使用Ubuntu 20.04版本运行py-bottom-up-attention的记录,及其可能错误的解决方法

文章目录 1. 切换linux的镜像2. 安装gcc3. 查看显卡驱动4. 安装gcc版本5. wsl安装cuda 10.16. 新建虚拟环境8. 安装依赖包9. 运行代码错误运行的所有历史命令如下 WSL使用Ubuntu 20.04版本运行py-bottom-up-attention的记录&#xff0c;及其可能错误的解决方法 github代码地址…

Ubuntu下Lighttpd服务器安装,并支持PHP

1、说明 Lighttpd 是一个德国人领导的开源Web服务器软件&#xff0c;其根本的目的是提供一个专门针对高性能网站&#xff0c;安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。 Lighttpd是众多OpenSource轻量级…

C++力扣题目--94,144,145二叉树非递归(迭代)遍历

为什么可以用迭代法&#xff08;非递归的方式&#xff09;来实现二叉树的前后中序遍历呢&#xff1f; 我们在栈与队列&#xff1a;匹配问题都是栈的强项 (opens new window)中提到了&#xff0c;递归的实现就是&#xff1a;每一次递归调用都会把函数的局部变量、参数值和返回地…