集合与实现类

集合与实现类

Vector集合:

  1. 线程安全,但是效率低
  2. 底层也是数组
  3. 初始容量是10
  4. Api与ArrayList相同,ArrayList线程不安全,Vector线程安全

ArrayList、LinkedList、Vector的区别:

  1. ArrayList底层是数组结构,需要初始化,LinkedList底层是双向链表结构,不需要初始化
  2. ArrayList需要扩容,大小是原来的1.5倍,LinkedList不需要扩容
  3. ArrayList 查找检索效率高,添加删除效率低,LinkedList查找检索效率低,添加删除效率高
  4. ArrayList 线程不安全,但是效率高,Vector线程安全,但是效率低
  5. ArrayList 每次扩容大小是1.5倍,Vector是2倍

HashSet初始容量大小是16,负载因为是0.75,扩容大小为原来的2倍

LinkedHashSet :元素有序,通过新添加的链表来确定元素的顺序。继承了父类  HashSet的api与特点

TreeSet是Set接口的一个实现类,底层是红黑树。实现了SortedSet接口,有序的,存储元素类型必须实现Comparable 接口,充血compareTo方法

Map集合:

  1. 是一个双列集合,与Collection集合是并列关系
  2. Map集合中的key、value是映射关系
  3. Key、value都可以存储null值
  4. Key值不能重复

HashMap:

  1. 初始容量16,负载因子是0.75
  2. 元素不能保证是有序的

LinkedHashMap:

  1. 是HashMap的子类
  2. 底层是哈希表+链表结构,元素有序
  3. 可以存储null值
  4. 需要初始化、需要动态扩容

TreeMap

  1. 是map的实现类,同时实现了SortedMap接口,内部带有排序的特性
  2. 底层是红黑树
  3. 不需要初始化,也不需要扩容
  4. 不能存储null键与null值

HashTable集合类:

  1. 是Map集合的实现类
  2. 不能存储null值
  3. 底层是哈希表
  4. 需要容器初始化,需要动态扩容,初始容量是11,负载因为0.75
  5. 线程安全
  6. 但是不建议使用,建议使用HashMap

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值