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. 第1关:学习-Java集合类之Map的HashMap之常用方法的使用

    任务描述 相关知识 什么是 HashMap 创建 HashMap 集合 HashMap 集合常用方法 遍历 HashMap 集合 编程要求 测试说明 任务描述 本关任务:使用 HashMap 集合操作 ...

  2. Java集合类之Map接口之学生花名册

    Java集合类之Map接口之学生花名册 任务描述 把给定的学生花名册数据添加到 Map 集合中. 相关知识 在 Java 的集合体系中,主要包含 Collection 接口以及 Map 接口,将介绍 ...

  3. 头歌实践-Java集合类之Set的HashSet之常用方法的使用

    头歌实践-Java集合类Set的HashSet之常用方法 1.任务描述 2.相关知识 3.Set集合 3.1 什么是 HashSet 集合 3.2 创建 HashSet 集合 3.3 HashSet ...

  4. c++ map的存储结构_「软帝学院」java集合类框架map及相关常见问题二

    Map接口 通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存 ...

  5. Java:从 Map 到 HashMap 的一步步实现!

    作者:山猫先生 www.cnblogs.com/king0/p/14176609.html 一. Map 1.1 Map 接口 在 Java 中, Map 提供了键--值的映射关系.映射不能包含重复的 ...

  6. 【java笔记】Map,HashMap,Collections

    5.1 Map的概述和使用 package demo11Map;import java.util.HashMap; import java.util.Map;public class Demo01Ma ...

  7. Java 集合类(Map和Collection)

    1 引言 集合是java中提供的大小可变的容器. 集合分为单列结合Collection和双列集合Map. 集合和数组的区别: 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可 ...

  8. 【Java集合之Map】HashMap、HashTable、TreeMap、LinkedHashMap区别

    Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap.HashTable.LinkedHashMap和TreeMap.本节实例主要介绍这4中实例的用 ...

  9. Java集合类之Set的HashSet之常用方法的使用

    任务描述 判断 HashSet 集合中元素个数以及是否包含某元素. 相关知识 1.Set集合 Set 集合用于存储无序的.唯一的元素.无序就是存储元素顺序和提取顺序不同,唯一就是存储的元素不能有相同的 ...

最新文章

  1. 2022-2028年中国金属制品行业投资分析及前景预测报告
  2. Spring的一些资源
  3. 【MySQL】计算 TPS,QPS 的方式
  4. python自动写作软件_开发了一款写作软件(OSX,Windows),附带Electron开发指南
  5. 【centOS】centOS安装图形界面
  6. 编译php时的configure,PHP编译configure时常见错误
  7. 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨 1
  8. 分享:Python中的位运算符
  9. 洛谷 P1113 杂务
  10. 数值计算之 插值法(2)多项式插值——牛顿插值法
  11. 计算机在学前教育中作用论文,学前教育论文
  12. Web前端--HTML+CSS+JavaScript酷炫游戏动漫网页设计
  13. mybati-plus自定义sql异常Invalid bound statement (not found)封装的sql查询正常
  14. Bokeh可视化笔记——x轴设为日期
  15. 幼儿园手工之自制时钟_「时钟手工」幼儿园玩教具手工时钟,培养孩子的时间观念...
  16. Type-C PD充电
  17. Real-Time Rendering 4th 译文《六 纹理(上)》
  18. 莫名其妙的Status Code: 500,返回值500是什么问题呢?构造函数恐怖如斯
  19. 在数学建模中微型计算机,“在数学建模中培养学生思维能力的研究”课题研究情况汇报...
  20. 杰里之AC696 系列外插 MIC 做混响或扩音设计注意【篇】

热门文章

  1. windows 10 添加 计划任务 自动进入睡眠
  2. 联想服务器更改系统时间设置方法,怎么调整联想电脑的日期和时间
  3. 2019pro与air怎么选_2020款MacBookAir高配和2019款MacbookPro13丐版买哪个?
  4. 华为注册鸿蒙商标1,华为注册鸿蒙商标 中国首款系统
  5. Android开发调试无法连接到夜神模拟器的解决方法
  6. 浮华过后,一地鸡毛,解读国产千元智能手机乱象
  7. 设计模式(基于狂神和尚硅谷)
  8. 【BZOJ4650】【NOI2016】优秀的拆分(后缀数组)
  9. Java第二次pta大作业总结
  10. chatgpt引入思考过程还是会出错?为什么不让机器检讨检讨自己(李宏毅)