substance
substance
全部文章
分类
未归档(185)
题解(7)
归档
标签
去牛客网
登录
/
注册
substance的博客
做最好的自己
全部文章
(共184篇)
getNode()方法
getNode()方法: 解释:方法的参数需要一个hash值,以及一个key。方法的返回值是一个Node节点。定义了节点数组tab,头节点first.下一个节点e,长度n,以及键k。如果tab不为空,tab的长度n大于0,以及头节点不为空才会去找这个元素,否则直接返回null。当满足条件后,首先会...
2022-05-24
0
277
resize()源码
解释: 情形一:当使用hashMap的无参构造器时,由于无参构造器之中没有做额外的工作只是设置了一下负载因子,oldTab == null ,于是oldcap为0;并且oldThr也就为0; 情形二:使用hashMap的有参构造时,oldcap为0,oldThr不为0; 定义了旧的容量,旧的阈值,新...
2022-05-23
0
324
hashMap计算下标的方法
1.比较容易想到的一种计算下标的方法是取余运算;在hashMap中使用了更加高效的算法; 2.(n-1)&hash,其中n为数组的长度,hash是使用key通过Object中的hashCode()方法计算得到的hash值,与右移了16位的hashCode值异或运算得到的。并且n为之前使用ta...
2022-05-22
0
242
hashMap方法之put方法
1.put方法源码:put方法中首先使用hash算法计算出的hash值以及传入的key,value以及其他的两个参数传递给putVal()方法; 2.hash()方法:可以发现hashMap中的hash算法不完全等同于object中的hashCode();key可能会重写了hashCode(); ...
2022-05-22
0
345
hashMap构造器
1.初始化容量:首先会对人为传入的初始化容量做出判断,如果这个初始化容量小于0或者大于最大容量,则会分别抛出异常; 2.如果负载因子小于等于0或者负载因子不是一个数字,抛出异常 3.之后分别为成员变量赋值为传入的值,其中初始化容量使用tablesizefor方法; 4.(jdk1.8中的方法) 这...
2022-05-16
0
214
hashMap成员变量引入
1、成员变量: 1.1static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 hash表的默认初始化容量为2的4次方。 1.2static final int MAXIMUM_CAPACITY = 1 << ...
2022-05-16
0
330
hashMap
1.hashMap概念: (不准确,先大致理解概念) hashmap会创建一个默认为16个槽位的数组(hash table也叫作hash表),这个数组中的每个都由一定的数据结构,本质上他也是一个节点,这个节点包含了hash,key,value,next这四个部分;hash决定了我们往哪个槽位添加值。...
2022-05-16
0
290
LinkedList源码
静态内部类节点 成员变量:头,尾, 节点的构造器比较简单: 头插方法: 首选使用f获取链表的头结点,并且创建一个新的节点,这个节点在创建时,这个节点的next就指向了first,pre = null; 接着使得让first 指向新的节点,并且判断如果原先的first节点为null时,则表明之前...
2022-05-11
0
265
ArrayList源码
1.jdk1.8与jdk11add()方法的源码不太相同; 首先分析jdk1.8处的源码: add()方法的整个流程分析: 1.Add方***调用ensureCapacityInternel(mincapicity)是正的扩容,方法内会有一个参数用于并发修改的。 2.ensureCapacit...
2022-05-11
0
266
ArrayList源码
ArrayList源码 方法:1.先大致了解成员变量2.了解构造器3.了解核心方法 成员变量:分别为:1.定义了一个空数组,2.第二个属于使用transient关键字修饰(这个属于才是实际存储数据的数组,此处关键字是流的时候需要掌握的)3.定义一个默认容量 有参构造:可以传入一个初始化的容量,这个...
2022-05-11
0
286
首页
上一页
3
4
5
6
7
8
9
10
11
12
下一页
末页