- 博客(6)
- 收藏
- 关注
原创 HashMap的底层原理:
分析: 假设我们要添加的键值对是 ddd 333,首先会将键值ddd和数组长度计算键值应在数组中存入的位置,然后判断数组中位置是否为空,不为空就会将我们要添加的键值对ddd 333和已经添加到数组当前索引上的链表中的每一个键值对进行比较,调用equals方法判断键是否一样,如上图,发现和键值对ddd 444的键值相同。如果属性值不一样: 会添加新的entry对象,形成链表(在JDK8以前:新元素会存入数组,老数组会挂在新数组的下面,在JDK8之后:新元素会直接挂在老元素的下面)
2024-03-22 09:54:46 1588 1
原创 分块查找!
比如: 27, 22, 30, 40, 36, 13, 19, 16, 20, 7, 10, 43, 50, 48。前一块中的最大数据,小于后一块中所有的数据(块内无序,块间有序)块的数量一般等于数字的个数开根号。比如:16个数字一般要分成4块。先确定要查找的元素在哪一块,然后在块内挨个查找。记得要定义完整javabean类!每一块的数据范围不能有交集。要将数据分成n多小块。
2024-03-14 00:04:22 727 1
原创 集合小总结
Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的Collection是单列集合的顶级父类,所有方法被List和Set系列集合共享常见的成员方法三种通用的遍历方式:迭代器: 在遍历过程中需要删除元素,可以使用迭代器遍历方式若仅仅想遍历,可以使用增强for或者Lambda表达式。
2024-03-09 10:46:50 1753
原创 算法小笔记(数组)
数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引来计算。//索引 0 1 2 3 4Java中数组结构为:8字节的mark word(对象头,其中包含一些元信息,比如对象的哈希码,锁状态等)4字节的类指针4字节记录数组大小(决定数组最大容量为2^32)数组元素对齐字节(Java中所有对象大小都是8字节的整数倍,不足时要用对其字节补足)的大小为40个字节(8 + 4 + 4 + 4 * 5 + 4)
2024-03-07 17:35:15 489 1
原创 算法小笔记(二分查找)
数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引来计算//索引 0 1 2 3 4。
2024-03-06 00:05:14 1721 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人