一、在Map集合体系中的位置及概述
Map接口式是Map集合体系的顶层接口,它定义和规范了该集合体系的大体规范,所有子类该实现的方法。该体系是以键值对(key-value)对位元素进行存储。
描述:
(1)映射(map)是一个存储键、键值对的对象,给定一个键,可以查询得到它的值,键和值都可以是对象。
(2)键必须是唯一的,值可以重复(Map接口映射唯一的键到值)
(3)有些映射可以接收null键和null值,而有的不行
(4)下面的接口支持映射:
Map接口 映射唯一关键字给值
Map.Entry接口 描述映射中的元素(关键字/值对),这是Map的一个内部类
SortedMap接口 扩展Map以便关键字按升序保持
(5)键(Key)是以后用于检索值的对象,给定一个键和一个值,可以存储这个值到一个Map对象中,以后可以
使用对应的键来检索它
二、约束子类必须实现的方法
1.查询操作(Query Operations)
1 | scss复制代码 /** |
2.修改操作(Modification Operations)
1 | scss复制代码 /** |
3.批量操作(Bulk Operations)
1 | csharp复制代码 /** |
4.视图操作(Views)
1 | scss复制代码 /** |
5.键值对视图接口(interface Entry<K,V>),该接口的方法如下:
该接口的作用是保存一个Key和Value键值对,和约束了一些操作键值的方法。
1 | scss复制代码 /** |
JDK1.8后新加的方法:
1 | swift复制代码 /** |
6.比较和哈希(Comparison and hashing)
1 | arduino复制代码 /** |
7.JDK1.8新添加的default方法(Defaultable methods)
default关键字是jdk1.8新添加的,它打破了接口中的方法不能有方法体的标准。
(1)获取方法 getOrDefault
1 | scss复制代码 /** |
(2)遍历方法 forEcah
1 | scss复制代码 /** |
使用方法演示
1 | go复制代码 Map<Integer, Integer> map = new HashMap<>(); |
(3)对所有值进行操作 raplaceAll
1 | javascript复制代码 /** |
使用方法演示
1 | go复制代码 Map<Integer, Integer> map = new HashMap<>(); |
(4)添加元素 putIfAbsent
1 | ini复制代码 /** |
(5)删除功能 remove
1 | vbnet复制代码 /** |
(6)替换功能
1 | vbnet复制代码 /** |
三、总结
Map接口是对键值对形式存储的数据结构方法的约束,子类方法需要实现其规定的抽象方法。在JDK1.8之后又添加了一些default声明的方法去扩充它本身的方法,新添加的方法中有很大一部分是关于1.8后新引入的函数式接口的方法,我个人认使用Lambda表达式这在很大程度上简化了编程代码的代码量。
本文转载自: 掘金