【JavaSE】Java基础语法(二十九):Map集合

news2025/1/9 17:16:51

文章目录

  • 1. Map集合概述和特点
  • 2. Map集合的基本功能
  • 3. Map集合的获取功能【应用】
  • 4. Map集合的遍历(方式1)
  • 5. Map集合的遍历(方式2)
  • 6. map四种遍历方式


在这里插入图片描述

1. Map集合概述和特点

  • Map集合概述
interface Map<K,V> K:键的类型;V:值的类型
  • Map集合的特点

    • 双列集合,一个键对应一个值
    • 键不可以重复,值可以重复
  • Map集合的基本使用

public class MapDemo01 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String,String> map = new HashMap<String,String>();
		
		//V put(K key, V value) 将指定的值与该映射中的指定键相关联
		map.put("001","刘亦菲");
		map.put("002","宋祖儿");
		map.put("003","林黛玉");
		map.put("003","江疏影");
		
		//输出集合对象
		System.out.println(map);
	}
}

2. Map集合的基本功能

  • 方法介绍
    在这里插入图片描述

  • 示例代码
public class MapDemo02 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String,String> map = new HashMap<String,String>();
		//V put(K key,V value):添加元素
		map.put("张无忌","赵敏");
		map.put("郭靖","黄蓉");
		map.put("杨过","小龙女");
		//V remove(Object key):根据键删除键值对元素
		// System.out.println(map.remove("郭靖"));
		// System.out.println(map.remove("郭襄"));
		//void clear():移除所有的键值对元素
		// map.clear();
		//boolean containsKey(Object key):判断集合是否包含指定的键
		// System.out.println(map.containsKey("郭靖"));
		// System.out.println(map.containsKey("郭襄"));
		//boolean isEmpty():判断集合是否为空
		// System.out.println(map.isEmpty());
		//int size():集合的长度,也就是集合中键值对的个数
		System.out.println(map.size());
		//输出集合对象
		System.out.println(map);
	}
}

3. Map集合的获取功能【应用】

  • 方法介绍
    在这里插入图片描述

  • 示例代码

public class MapDemo03 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		//V get(Object key):根据键获取值
		// System.out.println(map.get("张无忌"));
		// System.out.println(map.get("张三丰"));
		//Set<K> keySet():获取所有键的集合
		// Set<String> keySet = map.keySet();
		// for(String key : keySet) {
		// System.out.println(key);
		// }
		//Collection<V> values():获取所有值的集合
		Collection<String> values = map.values();
		for(String value : values) {
		System.out.println(value);
		}
	}
}

4. Map集合的遍历(方式1)

  • 遍历思路
    • 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
    • 把所有的丈夫给集中起来
    • 遍历丈夫的集合,获取到每一个丈夫
    • 根据丈夫去找对应的妻子

  • 步骤分析
    • 获取所有键的集合。用keySet()方法实现
    • 遍历键的集合,获取到每一个键。用增强for实现
    • 根据键去找值。用get(Object key)方法实现

  • 代码实现
public class MapDemo01 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		
		//获取所有键的集合。用keySet()方法实现
		Set<String> keySet = map.keySet();
		
		//遍历键的集合,获取到每一个键。用增强for实现
		for (String key : keySet) {
			//根据键去找值。用get(Object key)方法实现
			String value = map.get(key);
			System.out.println(key + "," + value);
		}
	}
}

5. Map集合的遍历(方式2)

public class MapDemo02 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		
		//获取所有键值对对象的集合
		Set<Map.Entry<String, String>> entrySet = map.entrySet();
		
		//遍历键值对对象的集合,得到每一个键值对对象
		for (Map.Entry<String, String> me : entrySet) {
			//根据键值对对象获取键和值
			String key = me.getKey();
			String value = me.getValue();
			System.out.println(key + "," + value);
		}
	}
}

6. map四种遍历方式

import java.util.*;
public class Test{
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<String, String>();
		map.put("1", "value1");
		map.put("2", "value2");
		map.put("3", "value3");
		
		//第一种:普遍使用,二次取值
		System.out.println("通过Map.keySet遍历key和value:");
		for (String key : map.keySet()) {
			System.out.println("key= "+ key + " and value= " + map.get(key));
		}
		
		//第二种
		System.out.println("通过Map.entrySet使用iterator遍历key和value:");
		Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, String> entry = it.next();
			System.out.println("key= " + entry.getKey() + " and value= " +
			entry.getValue());
		}
		
		//第三种:推荐,尤其是容量大时
		System.out.println("通过Map.entrySet遍历key和value");
		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println("key= " + entry.getKey() + " and value= " +
			entry.getValue());
		}
		
		//第四种
		System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
		for (String v : map.values()) {
			System.out.println("value= " + v);
		}
		
		//
		// 遍历TreeMap集合
		tm.forEach(
			(String key, String value)->{
			System.out.println(key + "---" + value);
			}
		);
	}
}

在这里插入图片描述

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

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

相关文章

MySQL — 视图、存储过程、触发器

文章目录 视图/存储过程/存储函数/触发器一、视图1.1 语法1.1.1 创建视图1.1.2 查询1.1.3 修改1.1.4 删除1.1.5 对数据的操作 1.2 检查选项1.2.1 cascaded1.2.2 local 1.3 视图的更新1.4 视图的作用1.5 案例1.5.1 案例11.5.2 案例2 二、存储过程2.1 介绍2.2 基本语法2.3 变量2.…

【保姆级】拯救“爆红”C盘,轻松清出30G

目录 第一步 ​第二步 第三步 第四步 ​第五步&#xff08;可选&#xff09; 打开一个程序&#xff0c;发现等它启动好了咖啡都凉叻。。 访问个文件&#xff0c;都要转个圈圈。。不、转好几个圈圈⭕️⭕️⭕️⭕️⭕️⭕️⭕️ 更新、安装新软件时&#xff0c;提示“安装…

分布式网络通信框架(十二)——zookeeper简介与安装

简介 zookeeper&#xff08;后文简称zk&#xff09;提供功能有&#xff1a;服务注册中心、全局服务命名、以及分布式锁。 RPC服务会被发布到不同的服务器上&#xff0c;本项目zk的作用就是找到某一个RPC服务在哪一个服务器上&#xff0c;提供服务注册发现功能。 zk的数据如何…

Linux-0.11 入口函数main.c详解

Linux-0.11 入口函数main.c详解 模块简介 main.c大部分代码主要是对内核进行初始化&#xff0c;而main.c开始&#xff0c;就都是c语言编写的内核了。 函数详解 time_init static void time_init(void)该函数读取CMOS时钟信息作为系统的开机时间。 struct tm time;do {time…

携手高通,移远通信以全栈式车载产品实力重新定义汽车

5月25日至26日&#xff0c;2023高通汽车技术与合作峰会在苏州成功举办。 移远通信作为高通重要的长期战略合作伙伴&#xff0c;受邀参加此次峰会&#xff0c;并现场展示了支持5G/4G、C-V2X、算力、UWB、Wi-Fi、高精定位等领先技术的多款车规级模组、天线等产品&#xff0c;更有…

Three.js——六、模型对象/材质

模型对象/材质 三维向量 Vector3 与模型位置 该类表示的是一个三维向量&#xff08;3D vector&#xff09;。 一个三维向量表示的是一个有顺序的、三个为一组的数字组合&#xff08;标记为 x、y 和 z&#xff09;&#xff0c; 可被用来表示很多事物&#xff0c;例如&#xff…

Flutter(七)功能型组件

1.导航返回拦截&#xff08;WillPopScope&#xff09; 需求&#xff1a;再按一次退出应用 用户在1秒内点击两次返回按钮时&#xff0c;则退出&#xff1b;如果间隔超过1秒则不退出 import package:flutter/material.dart;class WillPopScopeTestRoute extends StatefulWidget…

建筑行业数字化转型,工程管理系统已成建筑行业转型的利器

建筑工程项目管理的困境 专业工种多、工作环境复杂&#xff0c;工期长&#xff0c;且整体工业化标准化程度较低。 进度难管控、项目沟通协作不畅、项目执行过程不透明、项目成本管控难、项目盈亏情况不清、项目难共享等。 什么是工程项目管理 工程项目管理指的是对工程项目…

茶润童心 以茶明礼

中国是茶的故乡&#xff0c;也是茶文化的发源地&#xff0c;茶文化也是中国文化的一部分。5月27日下午&#xff0c;8位武汉公益小天使来到中茶恩施硒茶全国运营中心开展少儿茶艺活动。 开场的自我介绍&#xff0c;公益小天使逐个进行自我介绍&#xff0c;喊着“好名字”互相加…

软件测试的一些关键点

软件测试的一些关键点 随着互联网的快速发展&#xff0c;软件已经成为了我们生活和工作中不可或缺的一部分。在软件开发过程中&#xff0c;一项重要的工作就是软件测试。软件测试是指对软件产品或系统进行验证和验证的过程。在软件测试中&#xff0c;需要注意以下关键点。 首先…

[转]Github进行fork后如何与原仓库同步

问题场景&#xff1a; 新公司要求所有的代码提交都要先通过自己的库提交到主repo上去&#xff0c;所以先在gitlab网页上fork出一个自己的库&#xff0c;在本地修改完代码后提交到远程自己库上&#xff0c;然后在gitlab网页上发起一个merge request请求&#xff0c;然后等待主r…

面试:webpack常用loader和plugin

Webpack简介 Webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 bundles&#xff0c;它们均…

如何选择专业的低代码开发平台?为企业数字化转型保驾护航

在当今快节奏的商业环境中&#xff0c;软件开发已经成为任何组织的关键方面。然而&#xff0c;由于市场上有无数的软件开发平台&#xff0c;选择合适的平台可能是一项艰巨的任务。对于任何想要创建满足其业务需求的高质量应用程序的组织来说&#xff0c;选择正确的软件开发平台…

英国卡迪夫大学学生使用ChatGPT写论文拿到一等成绩

近日&#xff0c;BBC报道了一则新闻&#xff1a; 卡迪夫大学一名学生在期末考试中使用ChatGPT撰写了一篇论文&#xff0c;并获得了一等成绩&#xff0c;要知道这是英国大学中最高等级的成绩&#xff0c;而他的另一篇论文没有使用ChatGPT&#xff0c;只获得了二等一的成绩。 此…

1.6. 数组

数组是一种数据结构&#xff0c;用于存储相同类型的多个元素。在 Java 中&#xff0c;数组是一个对象&#xff0c;它具有一定数量的连续内存空间。数组中的每个元素都有一个索引&#xff0c;用于访问和操作元素。 1.6.1. 数组的声明与初始化 在 Java 中&#xff0c;可以使用以…

Find My资讯|iOS17将重点改进钱包、Find My、SharePlay和AirPlay等功能

彭博社的马克・古尔曼&#xff08;Mark Gurman&#xff09;在最新一期 Power On 时事通讯中表示&#xff0c;苹果即将推出的 iOS 17 系统将改进 Wallet、Find My、SharePlay 和 AirPlay 等多项功能。 古尔曼在博文中还表示苹果会增强 Find My 的位置服务&#xff0c;同样也没…

前端数据可视化开发平台FlyFish数据源应用教程详解

介绍 飞鱼&#xff08;FlyFish&#xff09;是云智慧开源的一款免费的数据可视化编排平台。通过简易的方式快速创建数据模型&#xff0c;通过拖拉拽的形式&#xff0c;快速生成一套数据可视化解决方案。在飞鱼产品中可以通过直接连接 MySQL 、 Oracle 等数据库直接从数据源中获…

LiangGaRy-学习笔记-Day17

1、磁盘的介绍 自动分区、手工分区、命令工具分区 1.1、磁盘分类 根据介质来区分&#xff1a; 机械硬盘和固态硬盘 通过盘大小&#xff1a; 3.5英寸和2.5英寸 通过接口分类&#xff1a; SAS、SATA、FC scisi 根据功能&#xff1a; 桌面和企业级别 1.2、磁盘类型 HD…

关于【Stable-Diffusion WEBUI】生成全身图:插件解决面部崩坏问题

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;脸难看的问题&#xff08;1.1&#xff09;面部修复&#xff08;1.2&#xff09;远景脸部问题 &#xff08;二&#xff09;面部修复插件&#xff08;Face Editor&#xff09;&#xff08;2.1&#xff09;模型…

最常见JS加密保护代码的方法

当谈到JavaScript&#xff08;简称JS&#xff09;代码的保护时&#xff0c;加密是一种常见的策略。加密可以帮助保护你的JS代码&#xff0c;防止未经授权的访问、修改和复制。在本文中&#xff0c;我将向你介绍一些常用的js加密保护方法&#xff0c;并提供一些通俗易懂的示例代…