首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
10-17 16:05
大连海事大学 测试工程师
海尔智造技术工程师电话面
第一次收到电话面试,我不太清楚这个是面试还是说确认流程,全程15分钟1,询问我的课题和项目基本情况?2,总部在青岛,能否接受在青岛工作?3,了解我更偏向研发之后,建议说可以投研发那边的岗位,然后介绍智造技术工程师需要进行的业务,说这个岗位就是进厂里面,然后偏制造类的,像机械啊,然后工艺工程这种,然后需要用CAD进行画图啥的,研发的部分占比非常小4,我看你的期望城市投的是武汉,我们这边会同步把你的简历推给武汉那边的部门,然后后续合适的话,会有视频面试面试官很温柔,感觉有真的被考虑到我的核心需求(但是我一志愿投的就是海尔软件测试呀,给我简历挂了(´-﹏-`;))
查看2道真题和解析
点赞
评论
收藏
分享
10-19 01:20
门头沟学院 Java
想进互联网大厂,简历应该怎么写?
最近在牛客上看到了不少简历,感觉有些同学的简历还是缺少亮点。其实之前实习的时候和作为面试官的同事聊天,他们说收到的很多简历都写得平平无奇,让人没有深入了解的欲望。对于开发岗位来说,简历上重点看的就是三点:学历、实习(项目)和技术栈(竞赛)。先说学历,这个在找工作时已经不能改变,所以我们要在实习和项目经历上多下功夫。我见过很多同学的简历,项目经历一栏就写个“参与了XX系统开发”,这样真的很难让面试官眼前一亮。面试官想看到的不是你做过什么,而是你是怎么做的,以及做出了什么成果。举个例子,如果你在项目里负责了性能优化,不要只写“优化了系统性能”。可以试试这样写:“通过引入Redis缓存热点数据和优化...
点赞
评论
收藏
分享
10-16 16:32
字节跳动_广告_后端开发工程师(准入职员工)
这素什么情况
二面完进录用评估了?
Java面试先知:
我也是和你一样的情况,hr 说等开奖就行了
点赞
评论
收藏
分享
10-15 11:43
盈峰环境科技集团股份有限公司_产品经理(准入职员工)
盈峰环境内推,盈峰环境内推码n
真实体验❤️ 🏫【系统培训+导师带教,过渡超顺畅】 入职后参加了整整半个月的系统培训!📚 不仅深入了解了公司文化、业务战略,还清晰看到了自己的成长路径~培训结束后立刻分配了一对一导师!我的导师超负责,从图纸规范到设计手把手教,让我快速融入研发节奏👨🏫 🍛【2元素菜+4元荤菜,食堂物价太感人】 每天最期待的就是食堂干饭!素菜2块,荤菜4块,一天15元能吃得很丰盛~ 🎯【公司提供单人住宿,生活成本大降低】 公司还提供单人宿舍!🛏️ 房间虽然不大但干净整洁,独立卫浴+空调齐全~通勤5分钟,再也不用担心租房压力了,真的为应届生省下一大笔开销! 🏸【周六羽毛球局,同事变球友!】 公司每...
盈峰环境科技集团股份有限公司公司福利 34人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
3
3
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
这个实习生我要给他转正
1.1W
2
...
没有家庭的托举,我只能靠自己
6540
3
...
选offer,就看这四点!
3864
4
...
27四非本,字节后端实习OC
3775
5
...
制造业求职 0 offer 时期的破局之道
3110
6
...
10.19百度笔试
3099
7
...
10.20哈啰一面
2137
8
...
感觉很多学计算机的人太压抑了
2125
9
...
学院本,各位大佬们,为什么9月投到现在一个面试机会都没有
2107
10
...
2026 秋招总结(上)
2040
创作者周榜
更多
正在热议
更多
#
发面经攒人品
#
2698287次浏览
36597人参与
#
产品实习,你更倾向大公司or小公司
#
175878次浏览
1995人参与
#
平安产险科技校招
#
1857次浏览
0人参与
#
26届秋招公司红黑榜
#
2118次浏览
4人参与
#
一汽大众工作体验
#
11725次浏览
23人参与
#
最难的技术面是哪家公司?
#
53252次浏览
882人参与
#
智慧芽求职进展汇总
#
6598次浏览
22人参与
#
机械人的工作环境真的很差吗
#
23722次浏览
117人参与
#
你认为小厂实习有用吗?
#
92952次浏览
604人参与
#
入职第一天,你准备什么时候下班
#
83692次浏览
457人参与
#
参加完秋招的机械人,还参加春招吗?
#
67349次浏览
596人参与
#
经纬恒润求职进展汇总
#
135943次浏览
1060人参与
#
度小满求职进展汇总
#
7364次浏览
40人参与
#
你有哪些缓解焦虑的方法?
#
36330次浏览
831人参与
#
秋招想进国企该如何准备
#
96873次浏览
483人参与
#
来聊聊机械薪资天花板是哪家
#
146100次浏览
804人参与
#
饿了么求职进展汇总
#
76802次浏览
682人参与
#
我对___祛魅了
#
134294次浏览
743人参与
#
职场捅娄子大赛
#
429179次浏览
4161人参与
#
关于提前批我想问
#
242502次浏览
2284人参与
#
机械人的薪资开到多少,才适合去?
#
134747次浏览
489人参与
#
我的求职进度条
#
130576次浏览
1513人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务