Java-集合第五篇Map集合
1、什么是Map集合。

Map用于保存具有映射关系的数据。key和value都可以是任意引用类型,但key不允许重复,即同一个Map的任何两个key通过equals方法比较总是返回false。
从Java源码看,Java是先实现了Map,然后通过包装一个所有value都为null的Map就实现了Set集合。Set有HashSet、LinkedHashSet、SortedSet(接口)、TreeSet、EnumSet,而Map有HashMap、LinkedHashMap、SortedMap(接口)、TreeMap、EnumMap。
Map的value放在一起看,又像是一个List:元素之间可以重复,每个元素可以根据索引查找,只是索引不再是数字,而是另一个对象。Map接口定义的常用方法有:

2、Map包括一个内部类Entry,该类封装了一个key-value对。Entry包含3个方法:
1》Object getKey():返回该Entry里包含的key值。
2》Object getValue():返回该Entry里包含的value值。
3》Object setValue(V value):设置Entry里包含的value值,并返回新设置的value值。
3、Java 8为Map新增的方法


4、Java 8改进的HashMap和Hashtable实现类
HashMap和Hashtable典型的区别:
Hashtable:它是一个古老的类。它是一个线程安全的Map实现类(其实早于Map接口出现)。当HashMap不是线程安全的实现类。HashMap可以通过Collections工具类将其包装为线程安全的。
Hashtable:不允许使用null作为key和value。但HashMap可以使用null作为key或value。(HashMap中只可以有一个key为null的键值对,但可以有无数多个value为null的键值对。)
为了在HashMap、Hashtable中存储、获取对象,用作key的对象必须实现hashCode()方法和equals()方法。HashMap、Hashtable判断两个key相等的标准是:两个key通过equals()方法比较返回true,两个key的hashCode值也相等。
HashMap、Hashtable中还包含了一个containsValue()方法,用于判断是否包含指定的value。判断标准时两个value的equals()方法比较返回true。
5、LinkedHashMap
使用双向链表来维护key-value对的次序(只需要考虑key的次序),该链表负责维护Map的迭代顺序,迭代次序与键值对插入的顺序一致。即LinkedHashMap只需要维护键值对的插入顺序,不需要额外的排序开销。
6、Properties
使用Properties读写属性文件。其key、value都是字符串类型,提供了3个方法修改Properties中的key、value的值:


7、SortedMap、TreeMap
8、WeakWeakHashMap
9、identityHashMap
10、EnumMap
11、各Map实现类的性能分析
12、HashSet、HashMap的性能选项
Java-集合第五篇Map集合的更多相关文章
- Java提高(5)---map集合排序
map集合排序 这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题. 比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按照成绩的好坏进行排序 ...
- Java基础(二十三)集合(6)Map集合
Map接口作为Java集合框架中的第二类接口,其子接口为SortedMap接口,SortedMap接口的子接口为NavigableMap接口. 实现了Map接口具体类有:HashMap(子类Linke ...
- Java【第十篇】集合
Java 集合概述 Java 集合就像一种容器,可以把多个对象的引用放入容器中.Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组Java 集合可分为 Set.List ...
- Java学习笔记24(Map集合)
Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- 【Java】遍历List/Set/Map集合的一些常用方法
/* * 遍历List/Set/Map集合的一些常用方法 */import java.util.ArrayList;import java.util.HashMap;import java.util. ...
- Java集合类学习笔记(Map集合)
Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...
- 第1节 Scala基础语法:13、list集合的定义和操作;16、set集合;17、map集合
list.+:5 , list.::5: 在list集合头部添加单个元素5 : li1.:+(5):在list集合尾部添加单个元素5: li1++li2,li1:::li2:在li1集合尾部添加il2 ...
- Java【第五篇】基本语法之--数组
数组概述 数组是多个相同类型数据的组合,实现对这些数据的统一管理数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量数组中的元素可以是任何数据类型,包括基本类型和引 ...
随机推荐
- vue2.0 之 生命周期
一.vue1.x与vue2.x生命周期的变化区别及含义表(图表摘自网络) 二.vue2.x生命周期图和各阶段具体含义 beforecreated:el 和 data 并未初始化 created: ...
- 前端之JavaScript:JS之DOM对象一
js之DOM对象一 一.什么是HTML DOM HTML Document Object Model(文档对象模型) HTML DOM 定义了访问和操作HTML文档的标准方法 HTML DOM 把 ...
- Spring Boot jpa Service层实现代码
package com.fei.service.impl; import java.util.ArrayList; import java.util.List; import javax.persis ...
- Arduino-舵机
舵机一般都外接三根线,一般棕色为接地线(GND),红色为电源正极线(VCC),橙色为信号线(PWM). 用Arduino控制舵机的方法有两种: 一种是通过Arduino的普通数字传感器接口产生占空比不 ...
- 【NOIP2015模拟11.3】IOIOI卡片占卜
题目 K理事长很喜欢占卜,经常用各种各样的方式进行占卜.今天,他准备使用正面写着"I",反面写着"O"的卡片为今年IOI的日本代表队占卜最终的成绩. 占卜的方法 ...
- nasm不是内部或外部命令
使用nasm编译汇编的源文件: nasm -f bin first.asm -o first.bin 报错:nasm不是内部或外部命令,这种错误一看就知道,是没有配置环境变量. 点开后,选择path, ...
- ASP.NET上传一个文件夹
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- Ubuntu 16.04下使用docker部署ceph集群
ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...
- 【PowerOJ1742&网络流24题】试题库问题(最大流)
题意: 思路: [问题分析] 二分图多重匹配问题,用最大流解决. [建模方法] 建立二分图,每个类别为X集合中的顶点,每个题为Y集合中的顶点,增设附加源S和汇T. 1.从S向每个Xi连接一条容量为该类 ...
- Internet History, Technology, and Security(week6)——Technology: Transport Control Protocol(TCP)
前言: 这周开始学习分层网络模型的第三层,传输层. Transport/Reliability: Transport Layer TCP层的目的是补偿IP层中可能出现的错误,并充分利用可用资源.由于I ...