List 、Set 、Map集合总结---5/23

本文详细介绍了Java集合框架的各种接口及其实现类,包括List、Set和Map等,并对比了不同集合的特点,如ArrayList与LinkedList的区别,以及HashMap与Hashtable的线程安全性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超级接口:    Iterable接口(在lang包中),   Collection是其子接口;

Collection 根接口(util包中的接口)
List子接口 Set子接口

List接口的常用实现类:
ArrayList      LinkedList     Vector
Set接口的常用实现类:
TreeSet         HashSet        LinkedHashSet


ArrayList的父类是AbstractList  实现了List接口
LinkedList的爷爷是AbstractList  实现了List接口
Vector的父类是AbstractList    实现了List接口

TreeSet的父类是AbstractSet  实现了Set接口
HashSet的父类是AbstractSet  实现了Set接口
LinkedHashSet的父类是HashSet  实现了Set接口


Map接口(util包中的接口)

Map接口的常用实现类: AbstractMap  HashMap  LinkedHashMap  TreeMap Hashtable

AbstractMap类的父类是Object  实现了Map接口
HashMap的父类是AbstractMap  再次实现了Map接口
TreeMap的父类是AbstractMap  即也实现了Map接口
LinkedHashMap的父类是HashMap  再次实现了Map接口
Hashtable的父类是Dictionary   实现了Map接口

父类已经实现了Map集合,其子类再次实现Map集合为了:强制子类重写父类实现所有接口的方法.


List 集合适合维护线性结构的数据(有序可重复)
Set 集合适合数据查找(无序不可重复,但TreeSet是特例,把值按字母顺序排序A-Z,a-z)
Map 集合适合保存键值对格式的数据(无序不可重复)


ArrayList:数组结构,查询快,修改,删除,插入慢.
LinkedList:双向循环链表结构,插入,删除,修改快,查询慢.
Vector:与ArrayList结构一样,区别:Vector线程安全,效率低.


TressSet:排序树结构,有序,所以查询效率最高,但维护数据的有序性比较困难,所以数据添加等效率低.
HashSet:散列算法,查询性能高,维护成本低.
LinkedHashSet:和HashSet基本相同,只是使用链表保存了元素加入的顺序,使输出对象时会按照加入顺序排序.


HashMap:线程不安全,效率高,异步不需等待.键值都可为null
Hashtable:线程安全,效率低,同步需要等待.键值都不可为null


HashMap和Set之间的关系:
1.Set的底层实现就是Map
2.Set中的add()方法返回的是Map.put(key,PRESENT)来实现的
3.因为Map的键不可重复,所以也就是Set为什么无序不可重复的原因
4.TreeSet底层是TreeMap



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值