集合框架:

集合框架:

所有的集合都是直接或者间接实现了Collection接口或Map接口

Collection接口下的集合继承体系:

在这里插入图片描述

List接口继承于Collection接口,同时也有实现类实现了这个接口,分别是:

ArrayList:底层是对象数组集合,是定容的,可以扩容。同时也是有序的,查询数据速度快,但是插入数据速度慢,是线程不安全的,但是效率快,适用于多线程;

jdk1.5以后,可以使用Collections类中的synchronizedList方法,让ArrayList变成线程安全的集合

②Vector:底层也是对象数组集合,也是有序的,但是Vector只适合于单线程,效率慢,是线程安全的,不推荐使用;

LinkedList:底层是双向数据链表,同时LinkedList还实现了Deque接口,所以它还具有队列的功能。没有固定容量,不需要扩容,但也是有序的,查询数据速度慢,但是插入数据速度快的。

在这里插入图片描述

Set接口也是继承于Collection接口,同时也有实现类实现了这个接口,分别是:

HashSet:是hashMap的实例,底层也是hash表,所以存入的元素不能重复,并且是无序的。线程不安全,存取速度快,通过对象的hashcode和equals方法来保证对象的唯一性。

TreeSet可以对集合中的数据进行排序,底层是二叉树,保证数据唯一性的方法是:compareTo()方法

排序是按照字母的ASCII码排序。

LinkedHashSet:底层是hash表和链表,有序,无索引,并且存入的元素不可重复(去重的同时还可以保证元素的有序性)

Map接口下的集合继承体系:

在这里插入图片描述

实现了Map接口的实现类分别是:

HashMap:底层是数组结构,同时数组中每一项又都是一个链表。因为HashMap也是数组结构,所以也是定容的,如果需要扩容,必须满足当前已有元素大于阈值和存放数据时发生了hash碰撞。同时hashMap是线程不安全的,并且允许有null值和null键。

HashTable:实现原理和hashMap一致,但不同的是hashTable是线程安全的,并且hashTable不允许有null键和null

TreeMap:底层是红黑树,所有的元素都保持着固定的顺序,查找,插入元素速度快,同时也是线程不安全的。

学无止境,砥砺前行~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值