前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【008期】JavaSE面试题(八):集合之List

【008期】JavaSE面试题(八):集合之List

作者头像
java进阶架构师
发布2020-07-15 16:50:22
3430
发布2020-07-15 16:50:22
举报
文章被收录于专栏:Java进阶架构师Java进阶架构师

大家好,我是Java面试题库提裤姐,今天这篇是面试系列的第八篇,主要总结了JavaSE中集合相关面试题,集合面试分为四篇来讲,毕竟是重中之重!这是第一篇,主要是一些基础的Collection及List相关的面试题,第二篇主要讲解Set集合,第三篇和第四篇主要讲解Map集合。在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。

Q:

说一下集合的体系?

单列集合:

双列集合:

Q:

Collection 和 Collections的区别?

Collection:

是java.uitl 下的接口,他是各种集合的父接口,继承于它的接口主要有set 和list;

Conllecitons:

是个java.util下的类,是针对集合的工具类,提供一系列静态方法对各种集合的搜索,排序,线程安全化等操作。

Q:

List a=new ArrayList() 和 ArrayList a =new ArrayList()的区别?

List list = new ArrayList();这句创建了一个 ArrayList 的对象后把上溯到了 List。此时它是一个List对象了,有些ArrayList 有但是 List 没有的属性和方法,它就不能再用了。 ArrayList list=new ArrayList();创建一对象则保留了ArrayList 的所有属性。所以需要用到 ArrayList 独有的方法的时候不能用前者。 实例代码如下:

代码语言:javascript
复制
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
list.trimToSize(); //错误,没有该方法。
arrayList.trimToSize(); //ArrayList里有该方法。

Q:

Enumeration和iterator接口的区别?

  • Enumeration接口作用与iterator接口相似,但只提供了遍历vector和HashTable类型集合元素的功能,不支持元素的移除操作
  • Enumeration速度是iterator的2倍,同时占用更少的内存。但是,iterator远比enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,iterator允许调用者删除底层集合里面的元素。

Q:

ListIterator有什么特点,与iterator区别?

  • Iterator是ListIterator的父类接口
  • Iterator是单列集合(Collection)公共取出容器中元素的方式 ListIterator是List集合的特有取出元素方式
  • Iterator中具备的功能只有hashNext(),next(),remove(); ListIterator中具备着对被遍历的元素进行增删查改的方法,可以对元素进行逆向遍历。

Q:

ArrayList集合加入1万条数据,应该怎么提高效率?

直接初始化ArrayList集合的初始化容量为1万。

但达到100万以上乃至1000万以上时,初始化容量方法效率会下降

Q:

说一下ArrayList和Vector的扩容?

ArrayList和Vector都有一个初始的容量大小。 ArrayList 是一个可改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态地增长。 内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组. Vector和ArrayList在更多元素添加进来时会请求更大的空间。 Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.(Vector默认增加原来的一倍,ArrayList默认增加原来的0.5倍)

注意:默认情况下ArrayList的初始容量非常小,所以如果可以预估数据量的话,最好分配一个较大的初始值,这样可以减少调整大小的开销。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档