你们好,我是Java最全面试题库
的提裤姐
,今天这篇是面试系列的第八篇,主要总结了JavaSE中集合相关面试题,集合面试分为四篇来说,毕竟是重中之重!这是第一篇,主要是一些基础的Collection及List相关的面试题,第二篇主要讲解Set集合,第三篇和第四篇主要讲解Map集合。在后续,会沿着第一篇开篇的知识线路一直总结下去,作到日更!若是我能作到百日百更,但愿你也能够跟着百日百刷,一百天养成一个好习惯。java
单列集合:面试
双列集合:数组
Collection:
是java.uitl
下的接口
,他是各类集合的父接口,继承于它的接口主要有set 和list;安全
Conllecitons:
是个java.util
下的类
,是针对集合的工具类,提供一系列静态方法对各类集合的搜索,排序,线程安全化等操做。工具
List list = new ArrayList()
;这句建立了一个 ArrayList 的对象后把上溯到了 List。此时它是一个List对象了,有些ArrayList 有可是 List 没有的属性和方法,它就不能再用了。ArrayList list=new ArrayList()
;建立一对象则保留了ArrayList 的全部属性。因此须要用到 ArrayList 独有的方法的时候不能用前者。
实例代码以下:ui
List list = new ArrayList(); ArrayList arrayList = new ArrayList(); list.trimToSize(); //错误,没有该方法。 arrayList.trimToSize(); //ArrayList里有该方法。
ListIterator是List集合的特有取出元素方式spa
ListIterator中具有着对被遍历的元素进行增删查改的方法,能够对元素进行逆向遍历。线程
直接初始化ArrayList集合的初始化容量为1万。
但达到100万以上乃至1000万以上时,初始化容量方法效率会降低code
ArrayList和Vector都有一个初始的容量大小。
ArrayList 是一个可改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态地增加。
内部的元素能够直接经过get与set方法进行访问,由于ArrayList本质上就是一个数组.
Vector和ArrayList在更多元素添加进来时会请求更大的空间。
Vector每次请求其大小的双倍空间,而ArrayList每次对size增加50%.(Vector默认增长原来的一倍,ArrayList默认增长原来的0.5倍)对象
注意:默认状况下ArrayList的初始容量很是小,因此若是能够预估数据量的话,最好分配一个较大的初始值,这样能够减小调整大小的开销。