自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 一家公司的笔试题目:有序数组中找到两个数字之和等于目标值。

具体描述:有一个正序的数组 nums[],一个目标值sum,现要求从数组中找到两个数字之和等于sum,并输出这两个数字,反之则输出没找到,要求时间复杂度为O(n)。方法可以可快速找到,去掉一层 for 循环使得时间复杂度为 O(n);后面也想到正序数组那么可以使用双指针,这也算是常见的三种解决办法了。嘛,两个for循环搞定,但是时间复杂度为O(n^2);要求时间复杂度为O(n)的话就是想到。

2025-04-04 22:54:40 44

原创 HashMap 的线程安全版:ConcurrentHashMap

是 Java 并发包中的线程安全集合类,是对HashMap的优化版本,主要用于多线程环境下的高效访问。它解决了HashMap在多线程下可能出现的。

2025-04-04 14:04:20 756

原创 HashMap 的底层结构以及线程安全性

当链表长度超过阈值(默认值为 8)且数组长度大于等于 64 时,链表会转换为红黑树,以提高查找效率。当多个键的哈希值映射到同一数组索引时,这些键值对会以链表的形式链接在该索引位置。会将新的键值对以链表的形式链接在该索引位置的后面。包含四个属性:键(key)、值(value)、哈希值(hash)和指向下一个节点的引用(next)。类型的数组,称为表(table)。中的键值对数量超过容量(数组长度)与负载因子(默认值为 0.75)的乘积时,扩容时,数组长度翻倍,并重新计算每个键值对在新数组中的位置。

2025-04-03 20:55:49 965

原创 Java集合框架

2、Map,代表键值对(key-value)的集合,典型代表就是 HashMap、LinkedHashMap。

2025-04-03 15:27:07 932

原创 ArrayList 和 LinkedList 有什么区别?

类别本质用途是否支持随机访问内存占用使用场景ArrayList基于数组通过下标实现快速查找元素实现 RandomAccess 接口,可随机访问占用一块连续的空间,仅供存储对象引用,空间利用率高;扩容时会扩至 1.5 倍,可能造成空间浪费。可以通过索引快速访问元素,故而可以保证随机访问频繁;插入和删除的操作效率低查找,适用于读操作远多于写操作。LinkedList基于链表通过改变链表的next和prev实现插入和删除没有实现 RandomAccess 接口,不可以随机访问。

2025-04-02 21:06:58 505

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除