千家信息网

Java那点儿事之Map集合有什么不为人知的秘密

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Java那点儿事之Map集合有什么不为人知的秘密",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java那点儿事之Map集合有什么不为人知
千家信息网最后更新 2026年11月02日Java那点儿事之Map集合有什么不为人知的秘密

本篇内容主要讲解"Java那点儿事之Map集合有什么不为人知的秘密",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java那点儿事之Map集合有什么不为人知的秘密"吧!

一、Map

Map集合的特点
- 键值对映射关系
- 一个键对应一个值
- 键不能重复,值可以重复
- 元素存取无序

我们通过他的一个实现类HashMap集合来理解

二、HashMap的基本概念

HashMap的定义:

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

HashMap 是无序的,即不会记录插入的顺序。

HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

那么HashMap的键和值的类型可以是String类型,也可以是其他数据的包装类类型,那么说到包装类类型,这里顺便帮大家复习一下包装类类型哦:

三、HashMap集合的基本方法与使用

学完HashMap集合的基本概念,那么我们怎么去在实际开发过程中去使用他呢?这里我们就要用到他的特有方法了,

以下是HashMap集合的常用方法

需要注意的是,Map集合的元素的添加并不是Collection集合的add()方法,而是Put()方法。因为Map集合是键值对集合,那么我们如何获取集合中的每一个元素呢?这里集合也给我们提供了他的元素获取方法:

示例代码如下:

import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set; /*    Map集合的获取功能:        V get(Object key):根据键获取值        Set keySet():获取所有键的集合        Collection values():获取所有值的集合 */public class MapDemo03 {    public static void main(String[] args) {        Map m = new HashMap();         m.put("张三", "李四");        m.put("王五", "赵六");        m.put("李老板", "光头强");        // V get(Object key):根据键获取值        System.out.println(m.get("张三"));         System.out.println(m.get("张四"));        System.out.println("=============");         //        Set keySet():获取所有键的集合        Set s = m.keySet();        for (String i : s) {            System.out.println(i);        }        System.out.println("=============");         //        Collection values():获取所有值的集合        Collection c = m.values();        for (String x : c) {            System.out.println(x);        }    }}

输出结果:

李四
null
=============
张三
王五
李老板
=============
李四
赵六
光头强

四、HashMap集合的遍历

其实遍历无非就是把集合中的元素一个一个给取出来,我们能用,那么在第三部分其实就已经讲到了一种遍历方式,那就是我们去获取键的集合,然后用循环去获取每一个键所对应的值,这样我们就将集合中的每一个元素取出来了。

遍历方式一:根据键的集合找值

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

代码实现

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

输出结果:

杨过,小龙女
郭靖,黄蓉
张无忌,赵敏

那么第二种方法就是我们利用entrySet()方法来获取集合中所有的键值对集合,然后去获取所对的键或值。

HashMap集合遍历方式二:键值对集合找键值对

步骤分析
- 获取所有键值对对象的集合
- Set> entrySet():获取所有键值对对象的集合
- 遍历键值对对象的集合,得到每一个键值对对象
- 用增强for实现,得到每一个Map.Entry
- 根据键值对对象获取键和值
- 用getKey()得到键
- 用getValue()得到值

代码实现

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

输出结果:

杨过,小龙女
郭靖,黄蓉
张无忌,赵敏

两种遍历方式都是很实用,各位大佬在开发中愿意用哪种都是可以的哦。

五、HashMap集合的综合案例

有道是:与其临渊羡鱼,不如退而结网。看了那么 多理论的东西不自己动手去实践一下,那么鱼儿永远在鱼塘,知识永远在电脑里,接下来就让我们一起动手做一道题,来加深一下印象。

案例需求:

案例需求
- 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。
- 举例:键盘录入"aababcabcdabcde" 在控制台输出:"a(5)b(4)c(3)d(2)e(1)"

思路解析:

1:键盘录入一个字符串
2:创建HashMap集合,键是Character,值是Integer
3:遍历字符串,得到每一个字符
4:拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储
如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值
5:遍历HashMap集合,得到键和值,按照要求进行拼接
6:输出结果

代码实例:

import java.util.HashMap;import java.util.Scanner;import java.util.Set; /*    需求:        键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。        举例:键盘录入"aababcabcdabcde"        在控制台输出:"a(5)b(4)c(3)d(2)e(1)"    思路:        1:键盘录入一个字符串        2:创建HashMap集合,键是Character,值是Integer        3:遍历字符串,得到每一个字符        4:拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值            如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储            如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值        5:遍历HashMap集合,得到键和值,按照要求进行拼接        6:输出结果 */public class HashMapDemo {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入一个字符串:");        String s = sc.nextLine();         HashMap hm = new HashMap();         for (int i = 0; i < s.length(); i++) {            char key = s.charAt(i);             Integer value = hm.get(key);            if (value == null) {                hm.put(key, 1);             } else {                value++;                hm.put(key, value);            }        }         StringBuilder sb = new StringBuilder();         Set keySet = hm.keySet();        for (Character key1 : keySet) {            Integer values = hm.get(key1);            sb.append(key1).append("(").append(values).append(")");        }        String result = sb.toString();        System.out.println(result);    }}

输出结果:

请输入一个字符串:
aababcabcdabcde
a(5)b(4)c(3)d(2)e(1)

到此,相信大家对"Java那点儿事之Map集合有什么不为人知的秘密"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

字符 对象 方法 字符串 元素 输出 方式 结果 键盘 存储 类型 代码 小龙 不为人知 秘密 内容 就是 案例 需求 张三 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网 科技 互联网科技英文 亿账通互联网科技 唐信互联网科技 大连 互联网科技小额贷款 伴你行互联网科技有限公司 互联网科技博客 银川新华互联网科技职业技术培训学校图片 互联网科技大奖都有哪些公司 广州新华互联网科技学校电竞方面 广州有谷有贝互联网科技有限公司 济南小医互联网科技有限公司招聘 互联网硬科技公司 版纳互联网科技选哪家 互联网科技收购价值 互联网对科技影响 互联网领先科技成果宣传视频 平安好医生打造互联网科技医疗 黑龙江互联网科技公司 现代科技的标志之一的互联网 深圳互联网络科技有限公司 互联网科技上市公司 恒生科技互联网指数分析 汉立互联网科技有限公司联系电话 玖二柒互联网科技公司待遇 广州恒生互联网科技有限 南平创想时代互联网科技有限公司 千方科技属于互联网企业吗 互联网金融科技名词解释 信承诺互联网科技有限公司
0