集合
文章平均质量分 87
基础模块-集合
搬砖界的小白
凡所迹遇,绝非偶然
展开
-
【面试篇】集合相关高频面试题
从上面的例子发现, 虽然HashCode的倒数第二第三位从0变成了1,但是运算的结果都是1001。因为HashMap的设计者认为后插入的元素, 被访问到的概率最大, 所以HashMap在使用链表解决hash冲突的元素时,采用了头插法, 这样每次访问链表时, 先判断头节点是否等于目标节点, 如果是,直接返回目标节点, 不需要再去遍历整个链表了, 提升了查询效率。来计算hash值, 将初始容量设置为16,能最大程度的将元素散列的分布在数组上, 且最大程度的减少hash冲突的产生, 符合Hash算法。原创 2023-09-20 01:31:13 · 227 阅读 · 0 评论 -
【Map篇】HashTable详解
快速查找:Hashtable中的键值对是通过哈希函数计算索引值得到的,因此可以快速地查找元素,时间复杂度为 O(1)。高效插入和删除:由于哈希表的键值对是通过哈希函数计算索引值得到的,所以在插入或删除元素时,只需要计算一次哈希值即可定位元素,因此插入和删除操作都非常快速,时间复杂度为 O(1)。空间利用率高:哈希表只需要存储键和值,不需要额外的空间来存储指向下一个元素的指针,因此空间利用率比较高。可扩展性。原创 2023-09-20 01:07:13 · 89 阅读 · 0 评论 -
【Map篇】HashMap详解
在 Java 中的 HashMap 是基于哈希表实现的,哈希表的核心是数组,而数组的大小是固定的。当我们往 HashMap 中添加元素时,如果当前位置已经有元素了,则会发生碰撞,这个时候 HashMap 会依据一定的规则将元素添加到数组的其他位置。如果想要提高 HashMap 的性能,就需要尽可能减少碰撞。一种有效的方式就是通过调整数组的大小,增加数组的容量,从而使得元素分布更加均匀,减少碰撞的发生。而为了在扩容后保持哈希表中原有元素的位置不变,HashMap 采用了重新哈希的方法来处理。原创 2023-09-19 18:10:38 · 100 阅读 · 0 评论 -
【List篇】第四篇 LinkedList 详解
Java中的LinkedList是一种实现了List接口的双向链表数据结构。链表是由一系列节点(Node)组成的,每个节点包含了指向数据item和。Deque两端链表指针的指向O(1)从头开始遍历链表O(n)Cloneable克隆Iterablefor-eachList增删改查。原创 2023-09-17 23:56:18 · 342 阅读 · 0 评论 -
【List篇】第三篇 ArrayList 的线程不安全介绍
ArrayList 不是线程安全的原创 2023-09-10 23:21:45 · 1134 阅读 · 0 评论 -
【List篇】第二篇 ArrayList 详解(含图示说明)
Java中的ArrayList是一个动态数组,可以自动扩展容量以适应数据的添加和删除。它可以用来存储各种类型的数据,例如String,Integer,Boolean等。ArrayList实现了List接口,可以进行常见的List操作,例如添加、插入、删除和访问元素等。原创 2023-09-08 02:46:07 · 457 阅读 · 0 评论 -
【List篇】第一篇 使用Arrays.asList生成的List集合,操作add方法报错
主要是记录一次日常开发中,使用Arrays.asList方法创建list,然后使用add出现异常的场景原创 2023-09-01 17:00:41 · 2248 阅读 · 0 评论