Java集合类之Map的HashMap之常用方法的使用
Java集合类之Map的HashMap之常用方法的使用
任务描述
- 使用 HashMap 集合操作菜单
相关知识
1.什么是 HashMap
HashMap 是 Map 接口的实现类,它存储的内容是键值对(key-value)映射,其中 key、value 都可以为 null。
- HashMap 是无序的,即被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的。
2.创建 HashMap 集合
使用以下代码即可创建一个 HashMap 集合。
public static void main(String[] args) {// 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型Map<String, Integer> hashMap = new HashMap<>();}
3.HashMap 集合常用方法
下表展示了 HashMap 集合的常用方法:
方法名 | 方法说明 |
---|---|
put()方法 | 往集合中添加元素,key 值不可重复,重复时会覆盖之前的 value 值 |
size()方法 | 返回集合长度 |
get(key)方法 | 获取对应 key 值的 value 值 |
clear()方法 | 清除集合中的所有元素 |
values()方法 | 返回一个新集合,获取集合中所有元素的 values |
keySet()方法 | 返回一个新集合,获取集合中所有元素的 key |
remove()方法 | 根据 key 或者 key-value 去除集合中元素,并分别返回 value 值和 Boolean 值 |
iterator()方法 | 返回一个迭代器对象 |
entrySet()方法 | 将 Map 集合每个 key-value 转换为一个 Entry 对象,并返回由所有的 Entry 对象组成的 Set 集合 |
containsKey() | 判断集合中是否含右指定的 key 值 |
常用方法示例:
public static void main(String[] args) {// 创建 HashMap 集合,key存储字符串类型,value存储整数类型Map<String, Integer> hashMap = new HashMap<>();// 添加元素hashMap.put("李四",28);hashMap.put("张三",26);hashMap.put("王五",26);// 根据 key 获取 value 值Integer zs = hashMap.get("张三");System.out.println(zs);// 获取所有 key 值Set<String> strings = hashMap.keySet();System.out.println(strings);// 获取所有 value 值Collection<Integer> values = hashMap.values();System.out.println(values);// 根据 key 去除元素Integer ww = hashMap.remove("王五");System.out.println(ww);// 根据 key-value 去除元素boolean boole = hashMap.remove("李四", 28);System.out.println(boole); System.out.print(hashMap);}
执行结果:
26
[李四, 张三, 王五]
[28, 26, 26]
26
true
{张三=26}
4.历 HashMap 集合
以下是三种常用遍历方法。
public static void main(String[] args) {// 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型Map<String, Integer> map = new HashMap<>();// 添加元素map.put("李四",28);map.put("张三",26);map.put("王五",26);//第一种:通过 keySet 遍历,普遍使用for (String key : map.keySet()) {System.out.println("key= "+ key + " and value= " + map.get(key));System.out.println(----------);}//第二种:通过 entrySet 和迭代器遍历Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Integer> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());System.out.println(----------);}//第三种:通过 entrySet 和增强 for 循环遍历,推荐,尤其是容量大时for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());System.out.println(----------);}}
执行结果:
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
----------
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
----------
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
编程要求
- 接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,…);
- 切割字符串,把切割后的元素添加进 HashMap 集合中;
- 往集合中添加一道菜,菜名:lamb,价格:50;
- 输出所有菜名(不含价格);
- 删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
- 打印集合。
注意:字符串中的逗号和分号都是中文符号。
测试说明
- 平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例:
测试输入:
粉蒸肉:50,红烧鱼:50,小炒牛肉:75,手撕包菜:20,蒜蓉虾:100
预期输出:
[手撕包菜, 蒜蓉虾, lamb, 小炒牛肉, 粉蒸肉, 红烧鱼]
4
{手撕包菜=20, 蒜蓉虾=100, lamb=50, 粉蒸肉=50}
代码:
/*
仔细阅读给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashMap 集合的常用方法完成所给要求,具体如下:
- 接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,...);
- 切割字符串,把切割后的元素添加进 HashMap 集合中;
- 往集合中添加一道菜,菜名:lamb,价格:50;
- 输出所有菜名(不含价格);
- 删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
- 打印集合。注意:字符串中的逗号和分号都是中文符号。
*/import java.util.*;public class CollTest {public static void main(String[] args) {// 请在Begin-End间编写代码/********** Begin **********/// 第一步:接收给定字符串Scanner sc=new Scanner(System.in);String line=sc.nextLine();// 第二步:切割字符串String[] str=line.split(",");// 第三步:创建 HashMap 集合,key为菜名,value为价格Map<String,String> hashmap=new HashMap<>();// 第四步:添加数据到集合中for(int i=0;i<str.length;i++){String[] key=str[i].split(":");hashmap.put(key[0], key[1]);}// 第五步:往集合中添加给定的一道菜hashmap.put("lamb","50");// 第六步:输出所有菜名Set<String> strings=hashmap.keySet();System.out.println(strings);// 第七步:删除红烧鱼和小炒牛肉这两道菜后输出集合长度hashmap.remove("红烧鱼");hashmap.remove("小炒牛肉");System.out.println(hashmap.size());// 第八步:打印集合System.out.print(hashmap);;/********** End **********/}
}
续上~小白再写最后一题就可以睡觉觉啦!٩(๑>◡<๑)۶
分享句子啦:
“心意不是行李,因为没有重量,所以才难提起,更难放下。 ”
Java集合类之Map的HashMap之常用方法的使用相关推荐
- 第1关:学习-Java集合类之Map的HashMap之常用方法的使用
任务描述 相关知识 什么是 HashMap 创建 HashMap 集合 HashMap 集合常用方法 遍历 HashMap 集合 编程要求 测试说明 任务描述 本关任务:使用 HashMap 集合操作 ...
- Java集合类之Map接口之学生花名册
Java集合类之Map接口之学生花名册 任务描述 把给定的学生花名册数据添加到 Map 集合中. 相关知识 在 Java 的集合体系中,主要包含 Collection 接口以及 Map 接口,将介绍 ...
- 头歌实践-Java集合类之Set的HashSet之常用方法的使用
头歌实践-Java集合类Set的HashSet之常用方法 1.任务描述 2.相关知识 3.Set集合 3.1 什么是 HashSet 集合 3.2 创建 HashSet 集合 3.3 HashSet ...
- c++ map的存储结构_「软帝学院」java集合类框架map及相关常见问题二
Map接口 通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存 ...
- Java:从 Map 到 HashMap 的一步步实现!
作者:山猫先生 www.cnblogs.com/king0/p/14176609.html 一. Map 1.1 Map 接口 在 Java 中, Map 提供了键--值的映射关系.映射不能包含重复的 ...
- 【java笔记】Map,HashMap,Collections
5.1 Map的概述和使用 package demo11Map;import java.util.HashMap; import java.util.Map;public class Demo01Ma ...
- Java 集合类(Map和Collection)
1 引言 集合是java中提供的大小可变的容器. 集合分为单列结合Collection和双列集合Map. 集合和数组的区别: 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可 ...
- 【Java集合之Map】HashMap、HashTable、TreeMap、LinkedHashMap区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap.HashTable.LinkedHashMap和TreeMap.本节实例主要介绍这4中实例的用 ...
- Java集合类之Set的HashSet之常用方法的使用
任务描述 判断 HashSet 集合中元素个数以及是否包含某元素. 相关知识 1.Set集合 Set 集合用于存储无序的.唯一的元素.无序就是存储元素顺序和提取顺序不同,唯一就是存储的元素不能有相同的 ...
最新文章
- 2022-2028年中国金属制品行业投资分析及前景预测报告
- Spring的一些资源
- 【MySQL】计算 TPS,QPS 的方式
- python自动写作软件_开发了一款写作软件(OSX,Windows),附带Electron开发指南
- 【centOS】centOS安装图形界面
- 编译php时的configure,PHP编译configure时常见错误
- 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨 1
- 分享:Python中的位运算符
- 洛谷 P1113 杂务
- 数值计算之 插值法(2)多项式插值——牛顿插值法
- 计算机在学前教育中作用论文,学前教育论文
- Web前端--HTML+CSS+JavaScript酷炫游戏动漫网页设计
- mybati-plus自定义sql异常Invalid bound statement (not found)封装的sql查询正常
- Bokeh可视化笔记——x轴设为日期
- 幼儿园手工之自制时钟_「时钟手工」幼儿园玩教具手工时钟,培养孩子的时间观念...
- Type-C PD充电
- Real-Time Rendering 4th 译文《六 纹理(上)》
- 莫名其妙的Status Code: 500,返回值500是什么问题呢?构造函数恐怖如斯
- 在数学建模中微型计算机,“在数学建模中培养学生思维能力的研究”课题研究情况汇报...
- 杰里之AC696 系列外插 MIC 做混响或扩音设计注意【篇】
热门文章
- windows 10 添加 计划任务 自动进入睡眠
- 联想服务器更改系统时间设置方法,怎么调整联想电脑的日期和时间
- 2019pro与air怎么选_2020款MacBookAir高配和2019款MacbookPro13丐版买哪个?
- 华为注册鸿蒙商标1,华为注册鸿蒙商标 中国首款系统
- Android开发调试无法连接到夜神模拟器的解决方法
- 浮华过后,一地鸡毛,解读国产千元智能手机乱象
- 设计模式(基于狂神和尚硅谷)
- 【BZOJ4650】【NOI2016】优秀的拆分(后缀数组)
- Java第二次pta大作业总结
- chatgpt引入思考过程还是会出错?为什么不让机器检讨检讨自己(李宏毅)