详解 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集合> ...
随机推荐
- 大规模机器学习(Large Scale Machine Learning)
本博客是针对Andrew Ng在Coursera上的machine learning课程的学习笔记. 目录 在大数据集上进行学习(Learning with Large Data Sets) 随机梯度 ...
- 命令行中运行Java字节码文件提示找不到或无法加载主类的问题
测试类在命令行操作,编译通过,运行时,提示 错误: 找不到或无法加载主类 java类 package com.company.schoolExercise; public class test7_3_ ...
- 有个原则就是实体类还是controller入参都应该是 包装类型
问题说明 我在使用JPA作为项目的ORM框架的时候,在分页查询中,不管咋样使用查询不出来数据,然后发现Hibernate构建的查询SQL中,在where子句中带上了createTime=0这个条件.这 ...
- gold 波浪
- 双连通分量 Road Construction POJ - 3352
@[双连通分量] 题意: 有一个 n 个点 m 条边的无向图,问至少添加几条边,能让该图任意缺少一条边后还能相互连通. 双连通分量定义: 在无向连通图中,如果删除该图的任何一个结点都不能改变该图的连通 ...
- 使用golang理解mysql的两阶段提交
使用golang理解mysql的两阶段提交 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理? 场景重现 比如我们现在有两个数据库,mysql3306和m ...
- C++ delete报错解析
C++ delete报错 今天写了如下代码 #include <iostream> #include <algorithm> using namespace std; int ...
- .NET Core项目部署到Linux(Centos7)(二)环境和软件的准备
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- ubuntu上安装lamp环境命令清单
#install configuration manager sudo apt-get install tasksel #install basic lamp stack sudo tasksel i ...
- C语言学生管理系统(C语言课程设计/精简版)
#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<conio.h>typed ...