Map集合
映射 通过某一个key可以直接定位到一个value值
存储的方式以 键值对 存储 key-value
key无序无重复 value无序可重复
key无序还是一样,指的是存入顺序与取得顺序不一致
key无重复当然指的是 元素不能一致
map基本使用
- HashMap
- TreeMap
- Properties
HashMap
- 包 java.util
- 如何创建对象
- 基本方法
增删改查
增put(key,value) 存放一组映射关系 key-value
1.key存储的顺序与取得顺序不同
2.不同的key可以存储相同的value
3.key若有相同的 则将 原有的value覆盖而不是拒绝存入(跟set刚好相反)
删E = remove(key);
改put(key,value1) put(key,value2)
replace(key,newValue)
查E = get(key)
遍历map集合? key不一定什么样
获取到所有的key 遍历key 通过key获取value
Set = keySet()获取全部的key
Set = entrySet();
size(); - 除了上述几个常用的方法外 其他API中提供的方法
clear containsKey(key) containsValue(value)
getOrDefault(key,defaultValue);如果key存在就返回对应的value 若没有找到则返回默认值
isEmpty()
putAll(map)
putIfAbsent(key,value);//如果key不存在才向集合内添加 如果key存在就不添加啦 - map集合在什么情形下用?
- 想要存储一组元素
数组 or 集合 如果存储的元素以后长度不变用数组 如果长度以后不确定 用集合- 如果发现长度以后不确定—>集合
List Set Map
List家族有序的 存储有顺序用这个
ArrayList 更适合遍历轮询
LinkedList 更适合插入和删除
Stack LIFO
Set家族无重复 存储元素希望自动去掉重复元素用这个
Hash 性能更高
Tree 希望存进去的元素自动去重复 同时还能自动排序
Map家族k-v 通过唯一的k快速找寻v用这个
Hash 性能更高
Tree 希望存进去的元素key自动排序
- HashMap底层的数据结构存储
散列表的形式 数组+链表
Person对象存入HashMap中? 可以
hashCode方法---->不同的对象 可以产生相同的hashCode码的
不同的hashCode码–>不同的对象
TreeMap
自然有序 按照Unicode编码自然有序
map集合中的key需要可比较的 key的对象需要实现Comparable接口
- java.util包
- 构造方法
无参数 带map参数 - 常用方法
put get remove replace size - 底层数据结构的存储
红黑二叉树
三连博主,每天分享一个编程小技巧!