HashMap的线程不安全主要体现在下面两个方面: 在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。 扩容逆序和环形:见上一篇文章中的头插法以及bilibili视频,https://www.bilibili.com/video/BV1vE411v7cR?p=4 数据丢失: 在JD ...
分类:
编程语言 时间:
2020-05-03 14:28:54
阅读次数:
158
import java.util.ArrayList;import java.util.Comparator;import java.util.HashMap;/** * 改变已知排序的key,依然保持大根堆或者小根堆 */public class ChangeSortKeyHeap { publi ...
分类:
编程语言 时间:
2020-05-02 22:40:13
阅读次数:
81
本文为面试必备系列篇,不深入叙述,具体细节可自行查询。 可能会问的问题 1、用过ConcurrentHashMap吗?2、为什么要用ConcurrentHashMap?3、HashMap与HashTable的区别,引出ConcurrentHashMap…4、HashMap在多线程环境下存在线程安全问 ...
分类:
其他好文 时间:
2020-05-02 20:34:48
阅读次数:
53
1、什么是HashMap呢? 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函 ...
分类:
编程语言 时间:
2020-05-02 18:58:24
阅读次数:
62
1.两数之和 思路: 都会想到的肯定是两重循环,但这会导致一个n平方的时间复杂度。有一个问题是,我在看浙大数据结构课中,其中提到如果见到n平方,要想办法做成nlogn,所以思路往那边想去了。所以,什么情况下能尝试吧n平方优化成nlogn呢? 没想到的是,LeetCode给的官方解法是hashmap的 ...
分类:
编程语言 时间:
2020-05-02 11:58:31
阅读次数:
60
[toc] 深入理解HashMap和TreeMap的区别 简介 HashMap和TreeMap是Map家族中非常常用的两个类,两个类在使用上和本质上有什么区别呢?本文将从这两个方面进行深入的探讨,希望能揭露其本质。 HashMap和TreeMap本质区别 先看HashMap的定义: ~~~java ...
分类:
其他好文 时间:
2020-05-02 10:15:21
阅读次数:
58
# 解题思路 对于无重复最长子串这类问题,通常可以采用两种解决方案: (1)滑动窗口法,使用首尾两个指针来确定字符串范围 (2)用数组实现hashmap法 下面对两种解法分别进行探讨。 # 滑动窗口法 对于滑动窗口法需要设置两个指针,在对字符数组进行遍历的过程中每移动一个字符就要使用一次遍历判断一次 ...
分类:
其他好文 时间:
2020-05-02 10:06:51
阅读次数:
48
[toc] 深入理解HashMap和LinkedHashMap的区别 简介 我们知道HashMap的变量顺序是不可预测的,这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的。这个特性通常会对我们的工作造成一定的困扰。为了实现这个功能,我们可以使用LinkedHashMap。 Linke ...
分类:
其他好文 时间:
2020-05-02 09:54:26
阅读次数:
41
1、hash(key),取key的hashcode进行高位运算,返回hash值2、如果hash数组为空,直接resize()3、对hash进行取模运算计算,得到key-value在数组中的存储位置i(1)如果table[i] == null,直接插入Node<key,value>(2)如果table ...
分类:
其他好文 时间:
2020-05-01 23:45:06
阅读次数:
88