![](https://img-blog.csdnimg.cn/20200730120724759.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
集合专栏
文章平均质量分 74
集中各种面试题、ArrayList源码解读、HashMap源码解读、CurrentHashMap源码解读等,欢迎观看
飞流2023
村上春树有一句话: “我告诉你我喜欢你 并不是一定要和你在一起 只是希望今后的你 在遭遇人生低谷的时候 不要灰心 至少曾经有人被你的魅力所吸引 曾经是,以后也会是”。
我觉得陈奕迅的《十年》是一种不甘心,是一种歇斯底里宣泄,那种深深刻在骨子里的悲伤,而沙宝亮的《十年》是最后面对这样结局的一种释然,是一种美好的祝愿。那种"在最美的十年遇见你"。
展开
-
面试官:讲一下HashMap中的get方法,最好可以详细的讲一下getTreeNode方法的具体实现
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中原创 2020-07-14 19:58:42 · 699 阅读 · 2 评论 -
隔一段时间撸一次,特别香,HashMap中remove、getOrDefault源码,一遍一遍、又一遍
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中原创 2020-07-13 18:09:12 · 13905 阅读 · 0 评论 -
HashMap中哈希碰撞大于8真的会将链表转为红黑树吗?
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?第四篇 HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?第五篇 留一半清醒、留一半醉!!!HashMap中原创 2020-07-13 12:08:42 · 1018 阅读 · 0 评论 -
记录9个hashCode相同的字符串,用于测试集合的哈希碰撞
记录9个hashCode相同的字符串案例演示@Testpublic void test_hash_map_hash() { ArrayList<String> list = new ArrayList<>(); list.add("3Qj"); list.add("2pj"); list.add("2qK"); list.add("2r,"); list.add("3RK"); list.add("3S,"); list.add("42j"); list.ad原创 2020-07-10 12:20:52 · 1563 阅读 · 0 评论 -
HashMap源码中的resize扩容方法除了扩容还有一个用途你真的知道吗?
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?.mdfinal HashMap.Node<K,V>[] resize()扩容源码源码解析final Node<K原创 2020-07-09 19:19:06 · 476 阅读 · 0 评论 -
面试官:HashMap源码看过吧,讲一讲put方法的源码是怎样实现的???
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获第三篇 MoxiMoxi !!!你看过HashMap中的put方法的源码吗?面试官:你能讲讲put方法吧?1、先通过hash值计算出key映射到哪个桶;2、如果桶上没有发生哈希碰撞冲突,则直接插⼊;3、原创 2020-07-09 14:26:00 · 651 阅读 · 2 评论 -
撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap系列文章第一篇 HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析第二篇 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获构造方法构造一个空的 HashMap ,默认初始容量(16)和默认负载因⼦(0.75)源码解析// 构造一个无参数的构造方法public HashMap() { // 将默认的加载因子0.75赋值给lo原创 2020-07-09 22:52:21 · 131417 阅读 · 0 评论 -
HashMap源码中的成员变量你还不懂? 来来来!!!整理好的成员变量源码解析
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。HashMap集合简介概述HashMap基于哈希表的Map接⼝口实现,是以key-value存储形式存在,即主要⽤用来存放键值对。它的key、value都可以为null。 HashMap 的实现不是同步的,这意味着它不是线程安全的。此外, HashMap中的映射不是有序的,位置由hashcode经过运算决定。数据结构 在JDK1.8 之前 HashMap 由 数组**+**链表 数据结构组原创 2020-07-07 17:32:47 · 1480 阅读 · 0 评论 -
满屏飘红,操作ArrayList的Iterator方法时竟然给我报ConcurrentModificationException异常,撸ta源码
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。ArrayList系列文章第一篇:ArrayList中的构造方法源码在面试中被问到了…抱歉没准备好!!!告辞第二篇:面试官让我讲ArrayList中add、addAll方法的源码…我下次再来第三篇:工作两年还没看过ArrayList中remove、removeAll、clear方法源码的都来报道吧第四篇: 乱披风锤法锤炼ArrayList源码中的get、set、contains、isEmpty方原创 2020-07-06 19:38:18 · 478 阅读 · 0 评论 -
乱披风锤法锤炼ArrayList源码中的get、set、contains、isEmpty方法!!!肝起来
点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。转载请标注来源出处,谢谢合作。共同学习,共同进步。前言看源码血泪史乱披风锤法,这个自创魂技可是唐三非常强烈的一个技能,将昊天锤的九九八十一锤以和自己的鬼影迷踪步结合在了一起,缺陷弥补了,而且将优势发挥得更大,最后的一锤的吴天锤更是所向披靡,无敌的存在。看源码也一样要经历九九八十一难,才能够真正理解其中的奥妙。看源码是一个比较耗费时间和精力的过程,可能会要看很多遍才能够真正的看懂。看源码也是一个很.原创 2020-07-06 08:42:10 · 558 阅读 · 0 评论 -
奥莉嘎!!!ArrayList源码中remove、removeAll、clear方法我又肝了一遍,收获良多
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。删除方法表格方法名描述public E remove(int index)根据索引删除元素public boolean remove(Object o)根据元素删除元素public void clear()将集合清空public boolean removeAll(Collection<?> c)删除与给定集合中相同的元素public E原创 2020-07-04 20:59:26 · 770 阅读 · 1 评论 -
面试官让我讲ArrayList中add、addAll方法的源码...我下次再来
前言点赞在看,养成习惯。点赞收藏,人生辉煌。点击关注【微信搜索公众号:编程背锅侠】,防止迷路。ArrayList中的添加方法总结方法名描述public boolean add(E e)将指定的元素追加到此列表的末尾。public void add(int index, E element)在此列表中的指定位置插入指定的元素。public boolean addAll(Collection<? extends E> c)按指定集合的Iterato原创 2020-07-03 16:08:03 · 741 阅读 · 0 评论 -
ArrayList中的构造方法源码在面试中被问到了...抱歉没准备好!!!告辞
ArrayList集合底层数据结构ArrayList集合介绍List 接口的可调整大小的数组实现。数组:一旦初始化长度就不可以发生改变 。数组结构介绍增删慢:每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。查询快:由于数组在内存中是一块连续空间,因此可以根据地址+索引的方式快速获取对应位置上的元素。源码中定义量默认的初始化容量private static final int DEFAULT_CAPACITY = 10;空数组没有默认容量private原创 2020-07-02 16:25:09 · 423 阅读 · 0 评论 -
compute和putAbsent源码分析及案例
compute源码分析及案例 描述校验这个计算函数是否为空,为空抛出空指针异常。使用给定的key和获取到的oldValue计算出一个新的值newValue。在新值为空的前提下,如果旧的值不为空,或者这个集合中包含这个key,则删除这个key,并且返回null。在新值为空的前提下,如果旧的值为空,并且集合不包含这个key,什么都不做,直接返回null。如果新值不为空,添加这个新值和指定的key到集合,这里可能是新增操作【新值不为空,集合中不存在这个key】或者是替换操作【新值不为空,集合中这个key,对原创 2020-06-28 17:56:56 · 313 阅读 · 0 评论 -
computeIfPresent源码分析及案例
方法概述如果指定键的值存在且非空,则尝试根据给定键及其当前映射值,计算新映射。如果函数返回 null,则将删除该映射。如果函数本身引发(未经检查的)异常,则该异常将被重新抛出,并且当前映射保持不变。请求参数key 指定的值将与之相关联。mappingFunction 计算数值的函数。返回值与指定键关联的新值;如果没有,则返回null。异常情况如果指定的键为空,而这个映射不支持空键,或者映射函数为空,则抛出NullPointerException。如果该集合不支持put原创 2020-06-22 18:59:00 · 457 阅读 · 0 评论 -
computeIfAbsent源码分析及案例
方法概述如果指定的键尚未与值关联(或被映射到null),则尝试使用给定的映射函数计算其值,并将其输入到这个映射中,除非null。如果函数返回null,则不记录映射。如果函数本身抛出了一个(未选中的)异常,则重抛异常,并且不记录映射。 最常见的用法是构造一个新的对象作为初始映射值或备忘结果。请求参数key 指定的值将与之相关联。mappingFunction 计算数值的函数。返回值与指定键相关联的当前值(现有值或计算值),如果计算值为空,则为空。异常如果指定的键为空,而这原创 2020-06-22 15:26:18 · 645 阅读 · 0 评论