你特叔

GitHub: https://github.com/Hunter1023

ArrayList list = new ArrayList(20);中的list扩充几次

ArrayList list = new ArrayList(20);中的list扩充几次
 A. 0
 B. 1
 C. 2
 D. 3

List

元素有序、可重复

ArrayList、Vector默认初始容量为10

Vector:线程安全,但速度慢

    底层数据结构是数组结构
    加载因子为1:即当 元素个数 超过 容量长度 时,进行扩容
    扩容增量:原容量的2倍
      如 Vector的容量为10,一次扩容后是容量为20

ArrayList:线程不安全,查询速度快

    底层数据结构是数组结构
    扩容增量:原容量的1.5倍+1
      如 ArrayList的容量为10,一次扩容后是容量为16

Set(集)

元素无序、不可重复

HashSet:线程不安全,存取速度快

  底层实现是一个HashMap(保存数据),实现Set接口
  默认初始容量为16
  加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
  扩容增量:原容量的2倍
      如 HashSet的容量为16,一次扩容后是容量为32

Map是一个双列集合

HashMap:默认初始容量为16(为何是16:16是2^4,可以提高查询效率,另外,32=16<<1)
  加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
  扩容增量:原容量的2倍
  如 HashSet的容量为16,一次扩容后是容量为32


解析:

  • ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍+1。
  • ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,没有扩充。

答案:A

阅读更多
文章标签: Java
个人分类: Java错题集
上一篇华为面试题-Session相关
下一篇有关下述Java代码描述正确的选项是____。
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭