详解 Map集合
(请关注 本人“集合总集篇”博文——《详解 集合框架》)
首先,本人来讲解下 Map集合 的特点:
Map集合 的特点:
特点:
通过 键 映射到 值的对象
一个 映射 不能包含重复的键
每个 键 最多只能映射到一个值
Map集合 的继承体系:
Map接口是集合框架 的 顶层接口之一,而Map接口的继承体系如下所示:
子接口:
Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMessageContext, MessageContext, NavigableMap<K,V>, SOAPMessageContext, SortedMap<K,V>子实现类:
HashMap,
LinkedHashMap,
Hashtable,
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, IdentityHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap
上示为 Map接口的 实现类 和 子接口。
但是,在我们今后的学习工作过程中,主要应用的 实现类 和 子接口 如下:
Map集合 的常用API:
本人现在按照功能来介绍一下这个接口的API,以便后续内容的讲解:
- 添加功能 :
- V put(K key,V value):
添加/替换 元素
如果 键是第一次存储,就 直接存储元素,返回null
如果 键不是第一次存在,就 用值把以前的值替换掉,返回以前的值
- 删除功能:
void clear():
移除所有的键值对元素V remove(Object key):
根据键删除键值对元素,并把值返回
- 判断功能:
- boolean containsKey(Object key):
判断集合是否包含指定的键- boolean containsValue(Object value):
判断集合是否包含指定的值- boolean isEmpty():
判断集合是否为空
- 获取功能:
- Set<Map.Entry<K,V>> entrySet():
返回一个键值对的Set集合- V get(Object key):
根据键获取值- Set keySet():
获取集合中所有键的集合- Collection values():
获取集合中所有值的集合
- 长度功能:
- int size():
返回集合中的键值对的对数
Map集合 的 注意事项:
注意事项:
注意 键 的类型是否重写了equals()方法:
(是否录入是靠 已存在HashMap集合中的键值对的 键 与 要录入的键值对的 键 的equals()的返回值:
- 返回true,则 用新键值对覆盖旧键值对
- 返回false,则 直接录入新键值对)
那么,现在,本人就来讲解下这个接口的常用的四个子类 —— HashMap、Hashtable 、LinkedHashMap 和 TreeMap 吧:
HashMap:
请观看本人博文 —— 《详解 HashMap》
Hashtable:
请观看本人博文 —— 《详解 Hashtable》
LinkedHashMap:
请观看本人博文 —— 《详解 LinkedHashMap》
TreeMap:
请观看本人博文 —— 《详解 TreeMap》
(集合总集篇链接:https:////www.cnblogs.com/codderYouzg/p/12416560.html)
详解 Map集合的更多相关文章
- 详解Map集合体系及方法entrySet、keySet、values
简单回顾Map集合: Map表示映射关系,以键值对的方式来保存数据.key和value一一对应.key是唯一的,不可重复,而value是可重复的,可以被多个key关联.虽然Map是放入两个数据,但是却 ...
- java如何对map进行排序详解(map集合的使用)
今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排 ...
- 详解 Collection集合
(请关注 本人"集合总集篇"博文--<详解 集合框架>) 首先,本人来讲解下 Collection集合的继承体系: Collection集合 的继承体系: Collec ...
- 详解SQL集合运算
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...
- Tarjan算法详解理解集合
[功能] Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量.强连通分量是指有向图G里顶点间能互相到达的子图.而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连 ...
- hdu1113 Word Amalgamation(详解--map和string的运用)
版权声明:本文为博主原创文章.未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/35338617 转载请注明出 ...
- 详解 TreeMap
(有关Map集合的基本性质,请观看本人博文-- <详解 Map集合>) TreeMap: 特点: TreeMap 键不允许插入null 键的底层数据结构是红黑树,可保证键的排序和唯一性 线 ...
- 详解 LinkedHashMap
同学们可能在看到这个类的时候就明白了很多关于这个类的特点,那么,本人就在这里来啰嗦一下,再来介绍下这个类: (有关Map集合的基本性质,请观看本人博文-- <详解 Map集合>) Link ...
- 详解 Hashtable
至于HashTable,本人只想说,除了它们各自的特点是截然相反外,其余性质 以及 用法和HashMap的性质几乎一样, (有关Map集合的基本性质,请观看本人博文-- <详解 Map集合> ...
随机推荐
- Linux上通过docker方式安装mysql
centos版本信息: docker版本信息 mysql版本:5.7 1.docker方式安装 首先拉取mysql镜像:docker pull mysql:5.7 查看本地的mysql镜像 执 ...
- 数据源管理 | 主从库动态路由,AOP模式读写分离
本文源码:GitHub·点这里 || GitEE·点这里 一.多数据源应用 1.基础描述 在相对复杂的应用服务中,配置多个数据源是常见现象,例如常见的:配置主从数据库用来写数据,再配置一个从库读数据, ...
- OpenCV-Python 相机校准 | 四十九
目标 在本节中,我们将学习 由相机引起的失真类型, 如何找到相机的固有和非固有特性 如何根据这些特性使图像不失真 基础 一些针孔相机会给图像带来明显的失真.两种主要的变形是径向变形和切向变形. 径向变 ...
- rabbitmq++:rabbitmq 三种常用的交换机
更多 rabbitmq 介绍 首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图: 黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器: 然后经过 ...
- API开放平台接口设计-------令牌方式
1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性? 2,使用令牌方式 比如支付宝对外提供支付的接口,爱乐生公司需要调用支付宝的接口.在爱乐 ...
- YII2自动初始化脚本
#!/usr/bin/expect spawn ./init expect "Which environment do you want the application to be init ...
- 140行Python代码实现Flippy Bird
140行代码实现Flippy Bird 话说这游戏中文名叫什么来着,死活想不起来了,算了话不多说,140行实现小游戏系列第二章,依然是简单小游戏,与数独游戏相比,在游戏界面显示上更难一些,但是在逻辑方 ...
- Unity 游戏框架搭建 2019 (十八~二十) 概率函数 & GameObject 显示、隐藏简化 & 第二章 小结与快速复习
在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...
- springboot系列(三)配置文件详解
目录 properties 文件 1.语法 2.优先级 3.自定义数据配置 4.获取自定义数据配置 1.通过prefix获取 yml文件 1.语法 2.优先级 3.自定义数据配置. 4.获取自定义数据 ...
- 从 Socket 编程谈谈 IO 模型(三)
快过年啦,估计很多朋友已在摸鱼的路上.而我为了兄弟们年后的追逐,却在苦苦寻觅.规划,导致文章更新晚了些,各位猿粉谅解. 上期分享,我们结合新春送祝福的场景,通过一坨坨的代码让 BIO.NIO 编程过程 ...