java map 数组_[Java 集合]Set & Map

ea3d98fd62310132101984186dba700a.png

首先介绍一下Collection接口和Map接口的继承体系:

  1. Collection接口:

0dc1fffbc90786f37ea28f70afd1c652.png
Collection接口继承体系

2. Map接口:

891837959d82bf975bf7215b705a05bf.png
Map接口继承体系

①Set 和 Map 的关系

  • Map集合的所有Key具有set的特征。
  • 若将Map的key-value对视作整体,则Map也可视作set

Map本质上是一个关联数组:key数组 + value数组,将一一对应的key和value绑定在一起就形成了Map

②HashSet 和 HashMap

  • HashSet:系统使用Hash算法决定元素的存储位置
  • HashMap: 系统将value当成key的附属物,根据Hash算法决定key的存储位置
当程序执行put方法时,系统将调用键名的hashCode方法得到其hashCode值,之后系统将根据该hashCode值决定该元素的存储位置。 创建HashMap时可传入初始capacity 和 load factor, initial capacity默认为16,load factor默认为0.75。 HashMap中:
1. size变量保存了map中包含的key-value对的数量
2. threshold变量包含了HashMap能容纳的key-value对的极限,等于HashMap的容量乘以负载因子(load factor)
3. 当size++ >= threshold,HashMap会自动调用resize方法扩充HashMap的容量。每扩充一次HashMap的容量就增大一倍
4. 当创建一个HashMap时,系统会自动创建一个table数组来保存HashMap中的entry
//  HashMap构造器:

Java集合实际上是多个引用变量所组成的集合,这些引用变量指向实际的Java对象

ArayList底层是基于数组实现的。每次创建ArrayList时传入的int参数是它所封装的数组长度。若创建时未传入参数,那么ArrayList的初始长度为0,底层封装的数组长度为10。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值