zoukankan      html  css  js  c++  java
  • 【2020面试】- Java中常见集合的默认大小以及扩容机制

    list元素时有序的、可重复
    Arraylist、vector默认初始化容量为10

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

    ArrayList:线程不安全,查询速度快
    底层数据结构是数组结构
    扩容增量:原容量的0.5倍+1
    如ArrayList的容量为10,一次扩容后是容量为16

    Set元素无序、不可重复
    hashset:线程不安全,存取速度快
    底层实现是一个HashMap(保存数据),实现Set接口
    默认初始化容量为16(为何是16,见下方对HashMap的描述)
    加载因子为0.75:即当元素个数超过容量长度的0.75倍时,进行扩容
    扩容增量:原容量的1倍
    如hashSet的容量为16,一次扩容后是容量为32

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

  • 相关阅读:
    十天冲刺之一
    每日日报2021 4/30
    每日日报2021 4/29
    每日日报2021 4/28
    每日日报2021 4/27
    每日日报2021 4/26
    每日日报2021 4/24
    每日日报2021 4/23
    《梦断代码》读后感
    273. Integer to English Words
  • 原文地址:https://www.cnblogs.com/juihai/p/14021248.html
Copyright © 2011-2022 走看看