Java之集合(七)Map
转载请注明源出处:http://www.cnblogs.com/lighten/p/7327216.html
1.前言
按照顺序,本章本是要对Set的相关类进行介绍及讲解的。但是对于其实现有所了解的都应该知道,Set本身的代码十分简单,其实现都是通过Map来实现的,所以本章介绍一下Java中的Map接口及抽象类。
2.Map接口
除去JDK8添加的新特性不看,Map中定义的方法如下:
1.size():返回键值对个数
2.isEmpty():判断是否为空
3.containsKey(key):键的集合中是否存在所给键
4.containsValue(value):值的集合中是否存在所给值
5.get(key):获取指定键的值
6.put(key,value):存入一对键值对
7.remove(key):移除指定键的键值对
8.putAll(Map):将所给的键值对全部存入
9.clear():清除所有的键值对
10.keySet():将所有的键值以Set集合返回
11.values():返回所有值的集合
12.entrySet():返回键值对的Set集合
13.getOrDefault():如果该键存在(哪怕对应值为null),返回其值,否则返回所给默认值
14.putIfAbsent():如果所给键不存在或者存在对应的值为null,重新设置,否则返回其值
15.remove(key,value):如果所给的值与该键对应的值不相等就不移除该键。
16.replace(key, oldValue, newValue):如果键所对应的值与所给旧值相等就用新值替换。
17.replace(key, value):如果该键存在,就用新值替换。并返回之前的值。
上述所有方法,从getOrDefault就使用了JDK8的新特性,能在接口中实现默认方法。
3.Entry
Entry是map实现的一个关键数据结构(就是一个键值对对象),关于Entry的接口定义如下:
1.getKey():获取键值对的键
2.getValue():获取键值对的值
3.setValue():设置键值对的值
后面的方法都是JDK8相关内容,不进行讲解。
4.AbstractMap
抽象类的实现并没有多大参考价值,就像其它集合一样,大部分子类都覆盖了抽象父类的相关方法。
size方法就比较很有意思。其使用的是entrySet的大小,而开篇也说了Set是借助Map实现的,其实际上调用的又是Map的size()方法。如果按抽象父类这种写法,那么就死循环了。同样的还有clear方法。
containsValue或者key都是通过entrySet拿到所有的键值对遍历实现的,实现和其它集合的抽象父类基本一致。之后的get,remove等方法都是一样的原理。其余的方法也不再一一叙述,如果前面几章集合的类认真学习过,这个基本是一样的套路。
Java之集合(七)Map的更多相关文章
- java基础集合简介Map(三)下
--Map接口简介 今天来看一看map集合,map映射接口,用于存放键值对,<key,value>,通过key来查找value,顾名思义key不能为空,唯一且不重复,不然底层怎么查呢! 可 ...
- Java:集合,Map接口框架图
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- Java常用的几种集合, Map集合,Set集合,List集合
Java中 Object是所有类的根 Java集合常用的集合List集合.Set集合.Map集合 Map接口常用的一些方法 size() 获取集合中名值对的数量 put(key k, value v ...
- JAVA基础知识之Map集合
Map的内部结构Entry Set与Map的关系 Map的内部类Entry Map的通用方法及Map的简单用法 HashMap和HashTable的区别 HashMap和HashTable判断元素相等 ...
- Java笔记(二十三)……Map集合
Map接口 Map<K,V> 该集合存储的是键值对,成对往集合里存,而且要保证键的唯一性 常用方法 添加 Vput(K key, V value) voidputAll(Map<? ...
- Java基础知识强化之集合框架笔记53:Map集合之Map集合的遍历 键值对对象找键和值
1. Map集合的遍历(键值对对象找键和值) Map -- 夫妻对 思路: A: 获取所有结婚证的集合 B: 遍历结婚证的集合,得到每一个结婚证 C: 根据结婚证获取丈夫和妻子 转换: A: ...
- Java基础知识强化之集合框架笔记52:Map集合之Map集合的遍历 键找值
1. Map集合的遍历 Map -- 夫妻对 思路: A:把所有的丈夫给集中起来. B:遍历丈夫的集合,获取得到每一个丈夫. C:让丈夫去找自己的妻子. 转换: A:获取所有的键 B:遍 ...
- Java基础知识强化之集合框架笔记51:Map集合之Map集合的功能概述与测试
1. Map集合的功能概述 (1)添加功能 V put(K key,V value):添加元素.这个其实还有另一个功能?先不告诉你,等会讲 如果键是第一次存储,就直接存储元素,返回null 如果键不是 ...
- Java集合之Map和Set
以前就知道Set和Map是java中的两种集合,Set代表集合元素无序.不可重复的集合:Map是代表一种由多个key-value对组成的集合.然后两个集合分别有增删改查的方法.然后就迷迷糊糊地用着.突 ...
随机推荐
- Nginx的两种负载均衡搭建(Tomcat版)
前言 Nginx的负载均衡一般采用upstream来实现,但是,还有另一种文件拓展的方式,同样可以实现负载均衡. 一.一般的负载均衡 upstream my_server { server local ...
- 7.计算N元等式[穷举]
穷举的一种应用,计算x+2y+3z=50的非负整数解.先约束每个变量的最大值,x=50,y=25,z=50/3. #include <iostream> using namespace s ...
- day05(Object,tostring(),equals(),System,Date,SimpleDateFormat,拆装箱,正则表达式)
Object类, 是所应类的父类: 拥有自己的方法:常用的 红颜色标记的为常用的方法 toString() 用法:打印对象的地址值 getClass() 获取当前类的字节码文件getName() ...
- Spring mvc,jQuery和JSON数据交互
一.实验环境的搭建 1.Spring mvc jar. 导入spring mvc运行所需jar包.导入如下(有多余) 2.json的支持jar 3.加入jQuery. 选用jquery-3.0.0.m ...
- (最小生成树)Agri-Net -- POJ -- 1258
链接: http://poj.org/problem?id=1258 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...
- [LeetCode 题解] Search in Rotated Sorted Array
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 题目描述 Suppose an array ...
- C#全局键盘监听(Hook)
一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...
- Redis连接异常
1. 以指定配置文件启动Redis,否则配置的东西不生效 redis-cli shutdown 关闭 $ redis-server ./redis.conf 2.连接异常 redis.conf 配置文 ...
- win10 打开sql server配置管理器
win10 安装 sql server之后无法在开始菜单找到“sql server 配置管理器(SQL server configuration manager 1)在开始菜单中,无法找到 配置管理器 ...
- [Xamarin]我的Xamarin填坑之旅(二)
上一篇交代了我Xamarin填坑的背景,大概聊了聊第一步环境配置,第二步创建项目和开发框架选择.如果有一个可用的梯子,这部分基本不会出错. 接下来就具体聊一聊写代码的过程中遇到的一些事儿. 第三步是码 ...