首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Java抽象小篮子
中南大学 Java
发布于湖南
关注
已关注
取消关注
八股速成 常见集合类笔记
@Java抽象带篮子_转大模型应用开发版:
[八股速成]Java常见集合类篇
前言 我之前整理过Java常见集合的超详细八股笔记:https://www.nowcoder.com/discuss/641559745995755520?sourceSSR=search,但是说实话因为这份这份八股资料过于详细,内容过于充实,给背记带来了很大的挑战,所以我准备再出一系列帖子,内容就是我根据自己的面试经历和网上的面经,去筛选八股里面哪些是最常被问到的问题把它们整理出来,这样也能省去大家自己整理和筛选的时间,大家可以在面试前一两个小时快速把这一系列最常问八股的帖子拿出来看看,临时抱佛脚的效果应该很好。后面这系列帖子我会放入专栏https://www.nowcoder.com/creation/manager/columnDetail/0ybvLm,欢迎大家订阅。最后我想说,速成虽好,但是还是建议有时间就去看看我详细的八股笔记帖子。 想要学习Java冲实习或冲春招的,我能助你一臂之力,我之前整理了高质量可速成的魔改外卖项目话术和7000字轮子项目话术,还有超全超精品八股大全专栏,怎么写简历,怎么包装实习经历,怎么0基础速成冲春招和实习等等等等精品帖子,大家可以去看看我的精品文章汇总帖子:https://www.nowcoder.com/discuss/721704696242536448?sourceSSR=users 我的八股大全专栏(15w人学习,超千人订阅,牛客最受欢迎最高质量java八股专栏,多一句没有,少一句不行):https://www.nowcoder.com/creation/manager/columnDetail/j8ZZk0 1.集合基础知识 1.Java集合有哪几种? Java集合类主要由两个接口Collection和Map派生出来的, 一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:List、Set 和 Queue(念q)。 2.集合的具体实现类 List ArrayList:Object[] 数组。 Vector:Object[] 数组。 LinkedList:双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环)。 Map HashMap:JDK1.8 之前 HashMap 由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。 LinkedHashMap:LinkedHashMap 继承自 HashMap,所以它的底层仍然是基于拉链式散列结构即由数组和链表或红黑树组成。另外,LinkedHashMap 在上面结构的基础上,增加了一条双向链表,使得上面的结构可以保持键值对的插入顺序。同时通过对链表进行相应的操作,实现了访问顺序相关逻辑。 Hashtable:数组+链表组成的,数组是 Hashtable 的主体,链表则是主要为了解决哈希冲突而存在的。 TreeMap:红黑树(自平衡的排序二叉树)。 Set HashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素。 LinkedHashSet: LinkedHashSet 是 HashSet 的子类,并且其内部是通过 LinkedHashMap 来实现的。 TreeSet(有序,唯一): 红黑树(自平衡的排序二叉树)。 Queue PriorityQueue: Object[] 数组来实现小顶堆。 DelayQueue:PriorityQueue。 ArrayDeque: 可扩容动态双向数组。 3.说说 List, Set, Queue, Map 四者的区别? Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Queue、Map这四个接口的实现类,这四个接口将集合分成了四大类,其中 Set代表无序的,元素不可重复的集合; List代表有序的,元素可以重复的集合; Queue代表先进先出(FIFO)的队列; Map代表具有映射关系(key-value)的集合。 2.List 1.List有哪些类? 2.Arraylist 与 LinkedList的区别 ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 对于随机访问ArrayList要优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随 机访问,而LinkedList的每一个元素都依靠地址指针和它后一个元素连接在一起,查找某个元素的 时间复杂度是O(N); 对于插入和删除操作,LinkedList要优于ArrayList,因为当元素被添加到LinkedList任意位置的时 候,不需要像ArrayList那样重新计算大小或者是更新索引; LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个 指向前一个元素,一个指向后一个元素 3.ArrayList扩容原理(常问) ArrayList有三种构造方法,无参构造方法将创建一个空的ArrayList,其内部使用一个默认容量为10的空数组初始化。如果通过指定初始容量来构造ArrayList,那么会创建一个具有该初始容量的数组。第三种构造方法允许传入一个集合,并将其所有元素添加到ArrayList中。 无参构造方法扩容过程如下 ArrayList的底层是动态数组,默认第一次插入元素时创建大小为10的数组。当调用add方法添加一个元素时,首先会确保当前ArrayList维护的数组具有存储新元素的能力。如果数组的容量不足以存储新元素,那么就会通过grow方法进行扩容。扩容的方式是将数组的容量扩大到原来的1.5倍,然后将原数组的数据复制到新的数组中。最后,将新元素添加到数组的末尾 4. 面试题-ArrayList list=new ArrayList(10)中的list扩容几次 在ArrayList的源码中提供了一个带参数的构造方法,这个参数就是指定的集合初始长度,所以给了一个10的参数,就是指定了集合的初始长度是10,这里面并没有扩容。 3.Map相关面试题 1.Map有哪些类? 2.HashMap的底层实现(jdk1.7和jdk1.8有区别)(常问) jdk1.7 JDK7中的HashMap,是基于数组+链表来实现的,它的底层维护一个Entry数组。它会根据计算的hashCode将对应的KV键值对存储到该数组中,一旦发生hashCode冲突,那么就会将该KV键值对放到对应的已有元素的后面, 此时便形成了一个链表式的存储结构。 JDK7中HashMap的实现方案有一个明显的缺点,即当Hash冲突严重时,在桶上形成的链表会变得越来越长,这样在查询时的效率就会越来越低,其时间复杂度为O(N)。 jak1.8
点赞 14
评论 3
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 18:38
拼多多集团-PDD_服务端研发工程师(准入职员工)
那次全链路压测,我负责的模块没有掉链子
周一早会,导师突然说了一句:"下周全链路压测,你负责的那个服务,准备好了吗?" 我愣了一下。 说实话,那个服务我接手才一个多月。最开始只是帮忙修几个小 bug,后来导师让我试着做一次小重构,再后来,慢慢地,那个模块的日常维护就落到了我手上。 但"全链路压测"这四个字,份量完全不一样。 我点了点头,说:"我先梳理一遍,明天给你同步。" 回到工位,我打开了系统的架构图,开始一个节点一个节点地捋。说不紧张是假的——这个服务在整条链路里不算最核心的,但如果它出了问题,上下游都会受影响。导师把它交给我,既是信任,也是考验。 那天下午我没写一行代...
点赞
评论
收藏
分享
03-25 15:54
重庆大学 Java
9本暑期实习完全没面试,哪里有问题?
完全没人约面,之前唯一一个给面试的字节一面挂了,麻烦大家看看是哪里的问题?我认为可能的几个原因:1.大厂筛简历不看pdf,只看在线填表的简历,我因为没有竞赛经历,没有实习经历,英语46级分太低等等,好几个模块是空的2.没有实习经历(那现在要去找个小厂实习先干着吗?感觉对暑期实习帮助不大啊)3.pdf版简历本身有问题,但我实在是不知道该咋改了最近真焦虑坏了,有种不知道该往哪里努力的感觉,完全没面试导致我都不知道该去提升哪方面了,求各位大神指点指点
llllllec:
环境太差了 不是你的错 现在是找实习必须得有实习经历
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
02-09 12:01
27届感觉看不到未来了
27届双非本计算机专业,感觉前后端挤满了人 ,于是转AI产品经理 ,学习相关知识 ,做项目改简历,但是投了半个月简历,打招呼了1k➕,只有3个约我面试,还都是那种0-20人的公司,我感觉有点不靠谱,我觉得怎么也得是中厂啊…是简历有问题吗,求指点,还是现阶段没实习没学历的我只能先去这种公司
同济一哥:
注意隐私...,你这样我要加你微信了
实习如何「偷」产出?
点赞
评论
收藏
分享
03-26 13:04
已编辑
电子科技大学 算法工程师
27找实习 这简历有问题吗?要怎么改啊?腾讯 京东大厂不给面呜呜
腾讯 京东oppovivo快手美团百度字节蚂蚁上面的厂都投了,有的直接简历挂了(快手 阿里挂的最严重),测评做了,有的给了笔试,但为啥大多都一直卡流程?卡在“简历筛选/评估中”,这是怎么回事?项目不行?还能找到实习吗?
没有实习经历,还有机会进...
点赞
评论
收藏
分享
03-25 10:58
已编辑
门头沟学院 Java
夸夸我的华为实习mt
第一天到公司的时候,我自己上楼了(入职邮件说了是哪一层),到了相应楼层,给导师打电话,导师一脸吃惊,说怎么我就到了,还以为我过段时间才来,导师穿着一双拖鞋,留着长发,稍显随意,导致我对导师的初步印象是:这靠谱吗,哈哈哈给我安排好工位、办公电脑,转一圈认识组里同事之后,我就问导师组里的业务是啥,有没有一些资料让我熟悉一下。起初导师给我发了一些PPT,我看了一两个小时之后,导师突然间走过来,说:“算了,业务太多了,我给你讲讲和组里现在做的比较相关的”。然后花了一个小时,给我梳理了一遍组里的业务和相关专业名词,还给我介绍了整个技术栈。当天中午,导师就带我去饭堂吃饭。吃饭聊了一下,发现我俩没啥代沟,导...
华为HUAWEI成长空间 647人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
3
3
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
双非选手的求职的感悟
5659
2
...
美团暑期实习一面
5284
3
...
快手暑期实习3.25发offer啦
4666
4
...
阿里笔试竟然考了AI提示词。。。
4515
5
...
面试官视角聊聊:如何避免成为“AI工具人”
3785
6
...
网申助手用了三周,说说真实感受(不是广告)
3494
7
...
双非两段大厂实习0offer,我做对了什么
3131
8
...
暑期结束,拥抱腾讯了
2893
9
...
携程3.25Java开发二面面经
2815
10
...
OpenAI关停Sora,这就不玩了?
2573
创作者周榜
更多
正在热议
更多
#
AI面会问哪些问题?
#
21760次浏览
435人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
338666次浏览
2151人参与
#
开放七大实习专项,百度暑期实习值得冲吗
#
13036次浏览
198人参与
#
你的实习产出是真实的还是包装的?
#
17421次浏览
318人参与
#
通信硬件2023笔面经
#
50485次浏览
304人参与
#
一张图晒出你司的标语
#
3406次浏览
63人参与
#
米连集团26产品管培生项目
#
12676次浏览
284人参与
#
蔚来求职进展汇总
#
117109次浏览
794人参与
#
找AI工作可以去哪些公司?
#
6257次浏览
151人参与
#
从事AI岗需要掌握哪些技术栈?
#
6345次浏览
204人参与
#
你做过最难的笔试是哪家公司
#
25458次浏览
153人参与
#
春招至今,你的战绩如何?
#
55232次浏览
497人参与
#
沪漂/北漂你觉得哪个更苦?
#
8433次浏览
176人参与
#
聊聊这家公司值得去吗
#
914947次浏览
4736人参与
#
AI时代,哪个岗位还有“活路”
#
9836次浏览
302人参与
#
长得好看会提高面试通过率吗?
#
20527次浏览
238人参与
#
阿里笔试
#
173104次浏览
1275人参与
#
HR最不可信的一句话是__
#
5072次浏览
99人参与
#
春招你拿到offer了吗
#
827711次浏览
9972人参与
#
学历对求职的影响
#
661467次浏览
4232人参与
#
应届生初入职场,求建议
#
318400次浏览
2895人参与
#
实习的你做了哪些离谱的工作
#
38785次浏览
253人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务