zoukankan      html  css  js  c++  java
  • [008]

    第一期: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的初始容量非常小,所以如果可以预估数据量的话,最好分配一个较大的初始值,这样可以减少调整大小的开销

  • 相关阅读:
    SQLMAP注入教程-11种常见SQLMAP使用方法详解
    VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能
    解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
    Spring Data JPA one to one 共享主键关联
    JHipster 问题集中
    Spring Data JPA 定义超类
    Spring Data JPA查询关联数据
    maven命名
    maven仓库
    Jackson读取列表
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/13723073.html
Copyright © 2011-2022 走看看