Java复习Day24
Map
1.1 简介
Map接口:
- 存储键值对对象
- 是独立顶级接口,不属于Collection子接口
1.2 HashMap
特点:
- 采用哈希算法存储数据
- 键不可重复,值可重复
- 无序存储,后插入的重复键会覆盖前值
- 默认初始容量16,负载因子0.75
常用方法:
put(key,value)
:添加键值对get(key)
:获取指定键的值containsKey(key)
:检查键是否存在containsValue(value)
:检查值是否存在remove(key)
:移除指定键的元素remove(key,value)
:移除指定键值对size()
:获取元素数量isEmpty()
:判断是否为空putAll(map)
:合并Mapreplace(key,value)
:替换指定键的值
遍历示例:
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {System.out.println(entry.getKey()+"\t"+entry.getValue());
}
1.3 LinkedHashMap
- 继承自HashMap
- 特点:有序存储,键唯一,值不唯一
1.4 TreeMap
- 基于树结构实现
- 自动按key升序排列
1.5 Hashtable
与HashMap的区别:
特性 | HashMap | Hashtable |
---|---|---|
实现版本 | JDK1.2 | JDK1.0 |
线程安全 | 不安全 | 安全 |
null值 | 允许 | 不允许 |
初始容量 | 16 | 11 |
扩容方式 | capacity*2 | capacity*2+1 |
数据结构 | 数组+链表+红黑树 | 数组+链表 |
哈希计算 | 二次哈希 | 直接取模 |