Map的相关知识

Map
在这里插入图片描述

HashMap
jdk7 数组+链表
jdk8 数组+链表+红黑树
面试题
Map中的Key:无序的,不可重复的,使用Set存储所有的key

----向key(Set)中添加数据,其所在类一定要重写hashCode()和equals()
Map中的Value:无序的,可可重复的,使用Collection存储所有的value------value所在的类重写相关的equals()

一个键值对:key-value构成一个Entry对象
Map中的entry对象:无序的,不可重复的,使用Set存储所有的entry

HashMap的底层实现原理
Jdk 1.7
在这里插入图片描述
Jdk8与Jdk 7的不同和

  1. new HashMap():底层没有创建一个长度16的数组
  2. jdk8 底层的数组是Node()而非Entry[]
  3. 首次调用put()方法 底层创建长度为16的数组
    类似于7是饿汉式8是懒汉式
  4. jdk7底层结构只有数组+链表,jdk8中底层结构:数组+链表+红黑树
    当数组某一个索引位置上的元素以链表形式的数据个数>8,且当前数据的长度>64时,此时此索引位置上所有数据改为使用红黑树存储

Jdk7的底层源码分析
底层创建了长度为16的一维数组Entry[] table 加载因子因子为0.75
超过临界值(16*加载因子)时候,默认扩容方式为为原来容量的两倍
在这里插入图片描述
二 Map的常用方法

在这里插入图片描述

在这里插入图片描述
添加则是在同一个key上修改value即可

Map的遍历
//遍历所有的key集,keySet()
在这里插入图片描述
//遍历所有的value集,values()
在这里插入图片描述
//遍历所有的key-value集,entrySet()
在这里插入图片描述
在这里插入图片描述
三.TreeMap
在这里插入图片描述
自然排序

在这里插入图片描述
在这里插入图片描述
定制排序
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
面试题:Collection与Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值