Java岗位面经--Java集合

集合

4说一说知道哪些集合

List常用的实现类

ArrayList与LinkedList区别

5 ArrayList和LinkedList

6插入元素时间复杂度

7新建一个ArrayList会分配内存嘛

8 ArrayList扩容的时机

9 ArrayList什么时候缩容

10 LinkedList插入int

11谁实现int装包的,是List吗

12 ArrayList线程安全吗,说说你知道的线程安全的List

13 Collections.同步方法和copyonwriteArrayList的异同点

ArrayList和LinkedList的区别

ArrayList扩容机制,上次看ArrayList源码还是去年9月份,,,真的忘了,只记得1.5倍扩容和grow方法的流程,其他的模模糊糊。我回答到当扩容1.5倍之后还不能满足大小,就直接将需要的大小设置为要扩容的大小。面试官可能将计就计的问了我add方法一次添加一个元素为什么会不满足条件呢,当时内心有点懵,所以也没回答出来,面试官又问如果让你去写这个代码,你觉得的该怎么写,只说思路就好。我就讲了一下自己的想法,这才结束了这个话题,害,健忘的我。

面试官在对话框里列出了ArrayList很多API,让我逐个分析他们的时间复杂度。

2.hashmap的复杂度 O(1),有链表还得算链表,大于8变红黑树

hahsmap的扩容。
答:就是新开一个2倍大小的空间,然后用头插法插入到新的位置;而1.8版本的话,是会用位运算求出节点的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mFcoder187974305

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值