
算法与数据结构Java版
文章平均质量分 88
算法与数据结构
shark-chili
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解析Java集合工具类:功能与实践
二分插入排序法是插入排序法的升级版本,如下所示,我们都知道插入排序后左边的元素都是有序的,如果使用常规二分排序,那么最坏情况下插入时间是O(n),所以我们基于左边有序这个特点改用二分插入的方式完成排序优化了这个问题。在编程的广袤领域中,集合是一个至关重要的概念,它犹如数据的魔法盒子,承载着各种元素的有序或无序组合。这个函数则说明这个数组为不具备随机访问性的链表,为了保证性能,该方法会通过计算的方式得到计算出一个批量移动的区间,然后基于这两个整体进行批量的移动。原创 2024-12-30 16:15:28 · 3565 阅读 · 0 评论 -
深入解析CopyOnWriteArrayList的工作机制
从源码中可知,COW即通过采用写时复制的思想,在迭代时的修改通过复制一份快照数组,并基于该数组完成并发修改操作,完成操作后再原子替换调原来的数组,由此保证线程安全,因为该操作涉及写时复制以及大数组的拷贝操作,这其中的开销还是蛮大的,一般情况下的try {//获取原有数组//基于原有数组复制出一份内存快照//进行添加操作//array指向新的数组fail-fast(快速失败)思想即针对可能发生的异常进行提前表明故障的一种工作机制,我们都知道util。原创 2021-08-05 22:23:06 · 821 阅读 · 3 评论 -
一文带你速通HashMap底层核心数据结构红黑树
每个节点或者红色,或者是黑色。根节点为黑色。每一个叶子节点都是黑色。如果一个节点是红色,那么他的孩子节点都是黑色。从任意一个节点,经过的黑色节点是一样的。在《算法4》一书中认为红黑树和2-3树是等价的。原创 2020-09-03 15:23:46 · 2114 阅读 · 0 评论 -
Java集合框架深度解析与面试指南
Map即映射集,是线上就是将对应的key映射到对应value上,由此构成一个数学上的映射的概念,该适合存储不可重复键值对类型的元素,key不可重复,value可重复,我们可以通过key找到对应的value。原创 2023-12-14 08:58:03 · 1575 阅读 · 0 评论 -
LinkedHashMap源码到面试题的全解析
是Java提供的一个集合类,它继承自HashMap,并在HashMap支持遍历时会按照插入顺序有序进行迭代。支持按照元素访问顺序排序,适用于封装LRU缓存工具。因为内部使用双向链表维护各个节点,所以遍历时的效率和元素个数成正比,相较于和容量成正比的HashMap来说,迭代效率会高很多。逻辑结构如下图所示,它是在HashMap基础上在各个节点之间维护一条双向链表,使得原本散列在不同bucket上的节点、链表、红黑树有序关联起来。是Java集合框架中HashMap的一个子类,它继承了HashMap。原创 2020-07-10 14:50:30 · 1512 阅读 · 0 评论 -
Java常用集合类HashMap深度解析
先来回答第一个问题,容量为什么是2的幂次方,首先我们步入hashMap的源码中查看。hashMap计算键值对存到桶中索引位置的代码。在n为2的次幂情况下,通过数学公式其实可以推导为hash%n。我们假设hash为1,使用不同的2次幂可以印证我们上面的论述。1. n为2的2次方: 4===> 3&1==1%42. n为2的3次方: 8===> 7&1==1%83. .....除此之外,使用2的次幂进行计算时碰撞次数会少于非2的次幂。同样的,我们假设hash值的7、8、9、10。原创 2022-03-02 21:44:21 · 1469 阅读 · 0 评论