Skip to content

Commit ec53d59

Browse files
authored
randomAccess 拼写错误,markdown语法错误
randomAccess 拼写错误,markdown语法错误
1 parent 7be08ff commit ec53d59

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

面试必备/美团-进阶篇.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,14 @@ ArraysList 实现了 RandomAccess 接口, 而 LinkedList 没有实现。为什
169169

170170
**下面再总结一下 list 的遍历方式选择:**
171171

172-
- 实现了RadmoAcces接口的list,优先选择普通for循环 ,其次foreach,
173-
- 未实现RadmoAcces接口的ist, 优先选择iterator遍历(foreach遍历底层也是通过iterator实现的),大size的数据,千万不要使用普通for循环
172+
- 实现了RandomAccess接口的list,优先选择普通for循环 ,其次foreach,
173+
- 未实现RandomAccess接口的ist, 优先选择iterator遍历(foreach遍历底层也是通过iterator实现的),大size的数据,千万不要使用普通for循环
174174

175175
> Java 中的集合这类问题几乎是面试必问的,问到这类问题的时候,HashMap 又是几乎必问的问题,所以大家一定要引起重视!
176176
177177
### 3.2 HashMap的底层实现
178178

179-
####① JDK1.8之前
179+
#### ① JDK1.8之前
180180

181181
JDK1.8 之前 HashMap 底层是 **数组和链表** 结合在一起使用也就是 **链表散列****HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 `(n - 1) & hash` 判断当前元素存放的位置(这里的 n 指的时数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。**
182182

@@ -217,7 +217,7 @@ static int hash(int h) {
217217
![jdk1.8之前的内部结构](https://user-gold-cdn.xitu.io/2018/3/20/16240dbcc303d872?w=348&h=427&f=png&s=10991)
218218

219219

220-
###② JDK1.8之后
220+
#### ② JDK1.8之后
221221

222222
相比于之前的版本, JDK1.8之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间。
223223

0 commit comments

Comments
 (0)