概述
通过键值对的形式存储元素 key-value,也称为字典
key 相当于 set集合
value 相当于 collection 集合
通过key (相当于索引)来查找 value
补充:
Map 提供了一个Entry 内部类来封装 key-value ,
从源码看,Java是先实现了Map,然后通过包装一个所有value都为null的Map,就实现了Set
框架图
![]() |
---|
常用方法:
void clear():
boolean containsKey(Object key):
boolean containsValue(Object value):
Set entrrSet(): 返回Map中包含key-value 对所组成的Set集合,每个集合元素都是Map.Entry(Entry是Map的内部类)对象
Object get(Object key) : 返回key 对应的value ,如果不包含 key 则返回 null;
boolean isEmpty():
Set keySet():
Collection values():
Object put(key, value):添加键值对 ,如果已经有了 UI覆盖原来的
void putAll(Map m):
Object remove(key):删除key-value并且返回 , 如果不存在 返回null
boolean remove(key, value):
int size():
JAVA8新增的方法
Object replace(key, value):如果key 不在集合中 返回null;
boolean replace(key, oldValue, newVlaue):
HashMap
- HashMap 与 HashTable的关系类似于 ArrayList 与 Vector的关系
- HashMap 线程不安全
- key value 允许为null 但是最多只有一个key为null
作为key的对象 必须实现hashCode()和equals()方法。
HashMap底层实现原理?
子类: LinkedHashMap
按照插入的顺序
HashTable
- key value 不允许为 null
- 是线程安全的
TreeMap
- 红黑树数据结构
- 对key 进行排序
1、自然排序:
2、定制排序:
网友评论