substance
substance
全部文章
未归档
题解(7)
归档
标签
去牛客网
登录
/
注册
substance的博客
做最好的自己
全部文章
/ 未归档
(共176篇)
集合类使用迭代器的几种方式
背景: 不同的集合实现迭代器的方式是不相同的;常见的集合的迭代器有:1.列表的迭代器使用;2数组的迭代器的使用;3.hashset的迭代器的使用。4.hashMap迭代器的使用(重点,易错) 1.1数组的迭代器的使用 package com.ydlclass.collection; import ...
2022-05-24
0
374
集合的遍历迭代器介绍
1.列表有长度,以及下标,可以使用for循环简单的实现遍历; 2.集合:无序的,没有下标所以需要使用新的遍历方式; 3.迭代器背景: 不同的集合可以有不同迭代器的实现方式,Iterator迭代器只是一个接口,提供了一种能力; (原先主要说明了接口中不能有方法的实现,但是在jdk1.8之后此处的源码中...
2022-05-24
0
355
HashSet源码
1.HashSet类继承AbstractSet类实现了Set接口,Clonable,以及Serializable接口; 2.HashSet内部维护了一个HashMap,其中HashSet的泛型就是HashMap的key,调用HashSet的构造器时就是创建了一个hashMap。 public cla...
2022-05-24
0
275
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
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页