[008] - JavaSE面试题(八):集合

第一期:Java面试 - 100题,梳理各大网站优秀面试题。大家可以跟着我一起来刷刷Java理论知识

[008] - JavaSE面试题(八):集合

第1问:说一下集合的体系?

单列集合:

双列集合:

第2问:Collection 和 Collections的区别?

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

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

第3问:List a=new ArrayList() 和 ArrayList a =new ArrayList()的区别?

List list = new ArrayList();这句创建了一个 ArrayList 的对象后把上溯到了 List。此时它是一个List对象了,有些ArrayList 有但是 List 没有的属性和方法,它就不能再用了。

ArrayList list=new ArrayList();创建一对象则保留了ArrayList 的所有属性。所以需要用到 ArrayList 独有的方法的时候不能用前者

实例代码如下:

第3问:Enumeration和iterator接口的区别?

  • Enumeration接口作用与iterator接口相似,但只提供了遍历vector和HashTable类型集合元素的功能,不支持元素的移除操作

  • Enumeration速度是iterator的2倍,同时占用更少的内存。但是,iterator远比enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,iterator允许调用者删除底层集合里面的元素

第4问:ListIterator有什么特点,与iterator区别?

  • Iterator是ListIterator的父类接口

  • Iterator是单列集合(Collection)公共取出容器中元素的方式

    ListIterator是List集合的特有取出元素方式

  • Iterator中具备的功能只有hashNext(),next(),remove();

    ListIterator中具备着对被遍历的元素进行增删查改的方法,可以对元素进行逆向遍历。

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

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

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

第6问:说一下ArrayList和Vector的扩容?

ArrayList和Vector都有一个初始的容量大小。

ArrayList 是一个可改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态地增长。内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.

Vector和ArrayList在更多元素添加进来时会请求更大的空间。

Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.(Vector默认增加原来的一倍,ArrayList默认增加原来的0.5倍)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值