java中常用的数据结构--Map
一、定义:
将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。
public interface Map<K,V>
请注意!!!, Map 没有继承 Collection 接口, Map 提供 key 到 value 的映射,你可以通过“键”查找“值”。一个 Map 中不能包含相同的 key ,每个 key 只能映射一个 value 。 Map 接口提供 3 种集合的视图, Map 的内容可以被当作一组 key 集合,一组 value 集合,或者一组 key-value 映射。
Map的API
void clear()
从该地图中删除所有的映射(可选操作)。 boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回 true 。 boolean containsValue(Object value)
如果此地图将一个或多个键映射到指定的值,则返回 true 。 Set<map.entry<k,v>> entrySet()
返回此地图中包含的映射的Set视图。 V get(Object key)
返回到指定键所映射的值,或 null如果此映射包含该键的映射。 boolean isEmpty()
如果此地图不包含键值映射,则返回 true 。 Set<k> keySet()
返回此地图中包含的键的Set视图。 V put(K key, V value)
将指定的值与该映射中的指定键相关联(可选操作)。 void putAll(Map<!--? extends K,? extends V--> m)
将指定地图的所有映射复制到此映射(可选操作)。 V remove(Object key)
如果存在(从可选的操作),从该地图中删除一个键的映射。 default boolean remove(Object key, Object value)
仅当指定的密钥当前映射到指定的值时删除该条目。 default V replace(K key, V value)
只有当目标映射到某个值时,才能替换指定键的条目。 default boolean replace(K key, V oldValue, V newValue)
仅当当前映射到指定的值时,才能替换指定键的条目。 int size()
返回此地图中键值映射的数量。 Collection<v> values()
返回此地图中包含的值的Collection视图。
</v></k></map.entry<k,v> Map中还包括一个内部类Entry,该类封装了一个key-value对。Entry包含如下三个方法:
K getKey() 返回与此条目相对应的键。 V getValue() 返回与此条目相对应的值。 V setValue(V value) 用指定的值替换与该条目相对应的值(可选操作)二、实现Map接口的子类
1、TreeMap : http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928
2、HashMap : http://www.cnblogs.com/skywang12345/p/3310835.html
3、HashTable: http://www.cnblogs.com/skywang12345/p/3310887.html
4、Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析:http://www.importnew.com/28263.html
三、集合系列的学习
http://www.cnblogs.com/skywang12345/p/3323085.html
java中常用的数据结构--Map的更多相关文章
- java中常用的数据结构--Collection接口及其子类
java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.集合和数组的区别 二.C ...
- Java中常用的数据结构类
结构体系图 List ArrayList.LinkedList.Vector有什么区别? ArrayList 只能装入引用对象(基本类型要转换为封装类): 线程不安全: 底层由数组实现(顺序表),因为 ...
- 动图+源码,演示Java中常用数据结构执行过程及原理
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
- 动图+源码,演示 Java 中常用数据结构执行过程及原理
阅读本文大概需要 3.7 分钟. 作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想 ...
- java中常用的工具类(三)
继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- Java高级特性 第2节 java中常用的实用类(1)
一.Java API Java API即Java应用程序编程接口,他是运行库的集合,预先定义了一些接口和类,程序员可以直接调用:此外也特指API的说明文档,也称帮助文档. Java中常用的包: jav ...
- JAVA 中的 Collection 和 Map 以及相关派生类的概念
JAVA中Collection接口和Map接口的主要实现类 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...
随机推荐
- 传奇GOM引擎授权过期解决方法.
传奇GOM引擎授权过期解决方法 下载最新的GOM引擎,将里面的Key.Lic文件找出来,替换掉授权过期的版本,如果你本身是免费版最好是找同样的免费版的来覆盖. 如果你本身是免费版,但是却用的是商业版K ...
- 疯狂python(分享本不错的书)
网盘链接:https://pan.baidu.com/s/1JDawVe8CT9BsHav5gBZS6Q 提取码vg8k
- C语言:有序递增链表的插入问题。
//已建立一个带头节点的单向链表,链表中的各结点按结点数据域中的数据递增有序连接.fun函数:把形参x的值放入一个新结点并插入链表中,使插入的各个数据域的数据仍保持递增有序. #include < ...
- pandas read excel or csv
import pandas as pd """pandas doc:df.dtypes 查看数据每column 数据类型 id int64x0 float64df.rei ...
- Docker容器CPU限制选项测试
目录 Docker容器CPU限制选项测试 参考 实验环境 --cpu-shares选项 测试 结论 --cpus选项 测试 结论 --cpuset-cpus选项 测试 结论 Docker容器CPU限制 ...
- 04-Docker-Container管理操作
目录 04-Docker-Container管理操作 参考 容器运行须知 容器生命周期 容器管理命令 1. 生命周期 2. 查看操作 3. 命令执行 4. 文件复制 容器用途分类 04-Docker- ...
- QSS基础-设置控件样式
1.QSS基础-设置同类控件样式'''QSS基础:Qt Style SheetQt样式表用于设置控件的样式和风格(比如控件的背景色,字体颜色,字体大小等)和CSS的功能比较相似,功能相似''' fro ...
- SpringBoot学习笔记(一)——构建springboot项目
生成一个SpringBoot的项目 开发和学习SpringBoot需要一个生成好的SpringBoot项目. 1.可以使用一些IDE(Integrated Development Environmen ...
- PCB设计要点
pcb要点 : 2014年8月5日 13:04 一地线设计 1.1分类模拟地.数字地.外壳地.系统大地 1.2接地方式:单点接地(f<1MHZ,避免环流),多点接地(f>10MHZ降低地线 ...
- bootstrap中col-xs-*和col-sm-* 和col-md-*是怎么样对应的
在做布局时,有时窗体大小变化会出现非想要的效果. 栅格系统中的列是通过指定1到12的值来表示其跨越的范围 所以不会有col-**-15 最大也就是12<div class="col-s ...