1.Map集合概述

Map集合是键值对(key-value)集合
使用场景:购物车信息中<商品,购买数量>的键值对
2.Map的特点
是个泛型接口,Map集合key是无序不重复的,而value是可以重复的,重复key对应的value会覆盖原来的value
HashMap 无序,无索引,不可重复
LinkedHashMap 有序,无索引,不可重复
TreeMap
3.Map的API
是非常常用的,比collection的API更常用!!!所以需要记住这些API

用父类接口来接收为什么可以体现多态
4.Map集合的遍历
键找值
转化成Set
利用maps.forEach
里面用匿名类的形式实现了泛型接口BiConsumer,所以可以用Lambda表达式简化
5.Map集合的应用Demo

6.HashMap
6.1 HashMap特点
是Map的一个实现类,无序不重复无索引
方法就是Map的那些常用api
6.2 HashMap底层原理
和HashSet的原理都是哈希表,但是HashMap的每个元素包含两个值
一个惊人的事实(标题党hhh)
Set系列集合的底层是靠Map实现的,但是Set集合中元素只保留了Key而没有Value,JDK源码如图

hashcode方法和equals方法保证了键的唯一。如果要使用自定义类则要重写这两个方法
7.LinkedHashMap
由键决定有序无重复,有序是说的存入顺序
7.2 LinkedHashMap底层原理
底层仍然是哈希表,但是多了双链表来记录顺序

420

被折叠的 条评论
为什么被折叠?



