集合的面试题

2025-10-21 02:41:19

1、Collection是一个接口,有2个子接口,分别是List和Set,List具有有序可重复特性,Set具有无序不可重复特性List有3个实现类 --Vector --ArrayList --LinkedList

2、区别:

1.Vector底层基于Object数组,线程安全,基于synchronized来保证线程安全的,初始化容量为10,   扩容后容量为当前容量的2倍,可以指定扩容增量,如:Vector vector = new Vector(10,25);   那么储存元素大于10时,会发生扩容,扩容后容量为35,即10+25

2.ArrayList底层基于Object数组,线程不安全,jdk1.6及jdk1.6以下版本初始化容量为10,   扩容后容量为当前容量的1.5倍加1,jdk1.7初始化容量为0,扩容后容量为当前容量的1.5倍

3.LinkedList底层基于双向循环链表,双向循环链表指链表中任意一个节点,具有指向上一个节点与下一个节点的属性,   最后一个节点的next指向第一个节点的previous,初始化容量为0,不会发生扩容,实现了队列接口

3、性能分析:1.Vector比ArrayList性能低,因为Vector线程安全

4、这只是一种理论的总结,当然了,如果能够在面试的时候快速的说出来,我相信集合的有关问题是可以解决的。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢