前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >映射(Map)

映射(Map)

作者头像
星哥玩云
发布于 2022-09-14 12:15:35
发布于 2022-09-14 12:15:35
67400
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

1、Map概述

Map接口中键和值一一映射. 可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象之后,你可以通过键来访问对应的值。

2、HashMap类

HashMap也用到了哈希码的算法,以便快速查找一个键,它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.HashMap;

public class MapDemo01 {
    public static void main(String[] args) {
        // Map不同于List,它的key不一定是数字
        HashMap map = new HashMap();
        map.put("Java讲义",109);
        map.put("python讲义",10);
        map.put("前端讲义",79);

        // 如果新的value覆盖了原有的value,该方法返回被覆盖的value
        System.out.println(map.put("python讲义",99)); // 输出10
        System.out.println(map);

        // 判断是否包含指定key
        System.out.println("是否包含值为python讲义key:"+map.containsKey("python讲义"));
        System.out.println("是否包含值为99 value:"+map.containsValue(99));

        // 遍历map
        for (Object key : map.keySet()) {
            System.out.println(key+"-->"+map.get(key));
        }
    }
}

根据键查询值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.HashMap;
import java.util.Set;
/**
 * Map集合的遍历,根据键查询值
 *
 * 思路:
 * A:获取所有的键
 * B:遍历键的集合,获取得到每一个键
 * C:根据键查询值
 * */
public class MapDemo02 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        HashMap<String, String> map = new HashMap<String, String>();

        map.put("hello", "world");
        map.put("java", "c++");
        map.put("sql", "os");

        System.out.println(map);

        // A:获取所有的键
        Set<String> set = map.keySet();

        // B:遍历键的集合,获取得到每一个键
        for (String key : set) {
            // C:根据键查询值
            String value = map.get(key);
            System.out.println(key + "---" + value);
        }
    }
}

根据键值对的对象查询键和值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
 * Map集合的遍历,根据对象查询键和值
 *
 * 思路:
 * A:获取所有的键值对对象的集合
 * B:遍历键值对对象的集合,得到每一个键值对的对象
 * C:获取键和值
 * */
public class MapDemo03 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        HashMap<String, String> map = new HashMap<String, String>();

        map.put("hello", "world");
        map.put("java", "c++");
        map.put("sql", "os");

        System.out.println(map);

        // A:获取所有的键值对对象的集合
        Set<Map.Entry<String, String>> set = map.entrySet();

        // B:遍历键值对对象的集合,得到每一个键值对的对象
        for (Map.Entry<String, String> me : set) {
            // C:获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "---" + value);
        }
    }
}

3、TreeMap类

TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。 键和值的关联很简单,用put(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object key)可得到与此key对象所对应的值对象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.Set;
import java.util.TreeMap;

public class MapDemo04{
    public static void main(String[] args) {
        TreeMap<String, String> map = new TreeMap<String, String>();

        //插入键值对
        map.put("bkey", "bvalue");
        map.put("dkey", "dvalue");
        map.put("ckey", "cvalue");
        map.put("akey", "avalue");

        //获取键值Set
        Set<String> keySet = map.keySet();
        //将键值Set转成数组
        Object[] keyArray = keySet.toArray();
        //按照键值依序获取值对象
        for (int i = 0; i < keyArray.length; i++)
            System.out.println("key=" + (String) keyArray[i] + "; value=" + map.get((String) keyArray[i]));
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java成神路 —— Map
1. Map 概述和特点 1.1 Map 概述 Map 是一种 键值对(Key-Value) 集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。 Map 接口主要有两个实现类:HashMap 类和 TreeMap 类 interface Map<K,V> K:键的类型 V:值的类型 1.2 Map 的特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 元素存取无序 1.3 示例代码 import java.util.HashMap; import java.util.Map;
繁依Fanyi
2023/05/07
1290
[javaSE] 集合框架(Map概述)
Map集合,将key对象映射到value对象 三个主要的子类:Hashtable,HashMap,TreeMap Hashtable:底层是哈希表数据结构,不允许使用null值,线程同步 HashMap:底层是哈希表数据结构,允许使用null值,线程不同步 TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键排序 使用keySet()方法遍历Map集合 调用Map对象的keySet()方法,得到Set对象,这里存储的是所有的键 import java.util.HashMap; im
唯一Chat
2019/09/10
4350
[javaSE] 集合框架(Map概述)
JDK1.9-Map集合
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/12/03
3720
java笔记–Map的用法
我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。
全栈程序员站长
2022/09/17
7910
java笔记–Map的用法
集合框架【第三章】——Map集合
1. Map   1.1 特点:无序、以键值对的形式添加元素,键不能重复,(如果多次往同一个索引存储元素,以最后一个存储为准,后面存储内容会将前面存储内容覆盖)值可以重复      它没有继承Collection接口。map集合一次要存两个元素,第一个是Key(键-索引)、第二个内容是value(值)   1.2 遍历     1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)     1.2.2 先取出保存所有Entry的Set,再遍历此Set即可
用户10196776
2022/11/22
3020
集合框架【第三章】——Map集合
【愚公系列】2022年01月 Java教学课程 51-集合对象Map
Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
愚公搬代码
2022/01/15
3940
【愚公系列】2022年01月 Java教学课程 51-集合对象Map
Java进阶-集合(2)
Map是一种键-值对(key-value)集合, 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。用于保存具有映射关系的数据(Map是一种映射表,可以通过key快速查找value)。
reload
2024/02/28
1920
Java进阶-集合(2)
【Java】Map集合
现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。
陶然同学
2023/02/27
1.2K0
【Java】Map集合
Java中的Map双边队列
键(Key)值(Value)对 邓超 = 娘娘 贝克汉姆 = 维多利亚 黄磊 = 孙莉 吴京 = 谢楠
用户7073689
2020/03/18
1.1K0
JavaSE集合(八)之Map
前面给大家介绍了集合家族中的Collection家族,这一篇给大家分享的是集合中的另一个家族就是Map家族。以前的时候学习Map的时候没有很认真的去学习,我觉得很多东西还是不是很清楚。 这次我将总结的非常详细。程序员的道理里,我们风雨无阻! 一、Map接口 1.1、Map概述   Map 的字面翻译是映射(地图就是一种映射)。将键映射到值的对象,一个映射不能包含重复的键(如果有添加有重复的键,后面的会覆盖掉前面的,但是如果是自定义类型必须重写hashCode()和equals()方法),每个键最多只能映射到
用户1195962
2018/01/18
9490
JavaSE集合(八)之Map
Java集合【超详细】2 -- Map、可变参数、Collections类
还记得 Java集合框架体系、Collection、List、ArrayList、LinkedList、Set、TreeSet、HashSet 吗?如果忘记可以到这里重新温习: Java集合【超详细】
寻求出路的程序媛
2024/05/31
1430
Java集合【超详细】2  --  Map、可变参数、Collections类
JAVA--Map集合详解
特点:该集合存储键(key)值(value)对,一对一对往里存,而且要保证键(key)的唯一性。
用户7886150
2021/04/25
6290
Java基础-18(01)总结Map,HashMap,HashMap与Hashtable区别,Collections工具类
(1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
Java帮帮
2018/03/15
7370
【Java_14】Map
一、Map 1. Map集合介绍 * Map集合是双列集合,键、值成对存在,其中键不能重复,值可以重复。 2. Map中的常用方法 ① put(K key, V value) 把指定的键与指定的值添加到Map集合中。 ② remove(Object key 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。 ③ get(Object key) 根据指定的键,在Map集合中获取对应的值。 ④ containsKey(Object key) 判断集合中是否
用户8250147
2021/02/04
3380
第十九天 集合-Map接口容器工具类集合框架总结【悟空教程】
Map集合的特点,如是否可重复,是否有序仅作用在键上,如HashMap集合的键不得重复,值可以重复。
Java帮帮
2018/07/26
1.2K0
第十九天 集合-Map接口容器工具类集合框架总结【悟空教程】
java基础学习_集合类04_Map接口、Collections工具类_day18总结
============================================================================= =============================================================================
黑泽君
2018/10/11
8020
java基础学习_集合类04_Map接口、Collections工具类_day18总结
第四阶段-Java集合框架:【第五章 Map接口】
Map是一种存储元素对的集合(元素对分别称作 键 和 值 也称键值对)它将键映射到值的对象。一个映射不能包含重复的键,并且每个键最 多只能映射到一个值。
BWH_Steven
2019/08/09
6640
Java学习笔记之集合3
本篇主要涉及Java知识点有Map集合,Collections集合工具类和一个斗地主的案例。
Jetpropelledsnake21
2021/12/24
5700
Java学习笔记之集合3
Java中Map使用详解
键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,相同就覆盖;
訾博ZiBo
2025/01/06
3160
Java中Map使用详解
Java集合框架-Collection03-Map集合
目录 1. Map 用一个题目给大家说一下吧! Map集合3层嵌套使用(2Map+1List)  1.2 遍历(代码如下)         1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)         1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 2.HashMap与Hashtable之间的区别(重点) 3. 其它(地狱回调)  ---- 1. Map  1.1 特点:无序、以键值对的形式添加元素,键不能重复,(如果多次往同一个索引存储元素,以最后一个存储为准,后
天蝎座的程序媛
2022/11/18
2200
Java集合框架-Collection03-Map集合
相关推荐
Java成神路 —— Map
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文