集合类学习

集合类关系继承图:

SortedSet:虽然无序不可重复,但是放在该集合的元素自动按照大小排序

Hashtable底层式哈希表数据结构,所有方法带有synchronized关键字,因此线程安全,但效率低

Hashtable的key和value不允许null

集合初始化容量为11

自动扩为机制:新容量大小=原容量大小*2+1

SortedMap的key存储元素的特点:

无序不可重复,放在SortesMap集合key部分元素会自动按照大小进行排序

集合都可使用迭代器遍历Iterator

List集合存储特点,有序可重复,有下标:

1.ArrayList:

底层采用数组的数据结构

初始化容量为10,类型为Object,自动扩容:1.5倍

非线程安全

优点:检索效率高

缺点:增删效率低,但是朝末尾增删效率高

 

 2.LinkedList:

底层采用双向链表的数据结构

在空间上元素存储不连续的

优点:增删效率高

缺点:检索效率低,每次检索都从头节点开始

3.Vector:

底层采用数组数据结构

线程安全,因为每个方法都有synchronized关键字,故此效率低,已经淘汰

Set集合存储特点,无序不可重复

1.HashSet:

newHashMap集合时,底层实际new了一个HashMap集合,数据其实存储在HashMap的key部分,HashMap是哈希表数据结构,初始容量为16,建议初始化容量大小为2的倍数,自动扩容机制会以两倍大小扩容,newHashMap需要重写equals和Hashcode

2.TreeSet:

底层为TreeMap,将数据放入TreeSet时,实际上是放到TreeMap中,TreeMap底层采用二叉树数据结构

 关于TreeSet的排序:

三种方法:

1.类继承Comparable接口,重写compareTo方法

2.新建一个比较器继承Comparator接口,重写compare方法,将比较器传入对象集合

3.比较器在传入时写成内部类(下图没有写)

以上方法自动去重

 

Map集合:

Collection和Map没有关系

Map以键值对的方式存储元素

所有Map集合key的特点:无序不可重复

1.HashMap:

底层是哈希表数据结构,非线性安全的

JDK8以后,哈希单向链表中元素超过8个,单向链表回变成红黑树数据结构,红黑树节点小于6个,回重新变为单向链表

初始化默认容量为16,默认加载因子为0.75,自动扩容为原来的两倍

HashMap集合的key和value允许null

 

2.Properties:

Properties是线程安全的

采用key-value方式存储元素,key与value都只支持String类型

Properties被称为属性类

3.TreeMap:

底层数据结构是一个二叉树

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值