现在面试一个集合能整出这么多东西 面试官:集合有哪些接口? 我:List和Set还有Map 面试官:List和Set有什么区别? 我:List有序能重复,Set无序不能重复 面试官:Set一定是无序的吗? 我:... 面试官:Set要分情况,要看是添加顺序还是自然顺序(被自己坑了) 面试官:说一下一些常用的List实现类 我:ArrayList和LinkedList 面试官:说一下这两个实现类的区别 我:ArrayList基于数组实现,LinkedList基于链表实现 面试官:分别说一下这两个实现类的适用场景 我:ArrayList适用于多查询少增删的场景,LinkedList适用于多增删少查询的场景 面试官:我有1000万个数据,需要做增删操作,你觉得LinkedList速度快还是ArrayList速度快?(又给自己挖坑😓) 我:...应该是LinkedList吧 面试官:数据量特别大的时候,LinkedList的速度会变慢,因为每次new node的开销是非常大的,达到1000万数量级的时候,LinkedList的速度会远远落后于ArrayList 面试官:ArrayList明明是基于数组实现的,数组明明是固定长度的,为什么ArrayList能不停地增加元素? 我:因为ArrayList有底层扩容机制 面试官:说一下这个扩容机制的原理 我:当数组增加到最大容量时,底层会new一个更大的数组,先将老数组的元素拷贝到新数组中去,再添加新元素。 面试官:新new的数组一般是多大? 我:老数组的1.5倍
6 20

相关推荐

牛客网
牛客企业服务