黑马程序员————集合框架小结(第一篇)

本文详细介绍了Java集合框架的构成及特点,包括List、Set、Map等接口的不同实现类,如ArrayList、LinkedList、HashSet、TreeSet、HashMap等,并对比了它们之间的区别。

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

------- android培训java培训、期待与您交流! ----------

1,集合是一个容器。用来存储对象。

和数组的区别:
存储的类型不同:数组可以存储基本数据类型和对象,集合只能存储对象。
长度不同:数组的长度是固定的,集合的长度是可变的
存储类型是否统一:数组只能存储相同类型的元素,集合可以存储不同类型的元素。

2,每个集合都是一个容器,这些容器都有自己存储数据的方式,称之为数据结构,
将这些集合共性的部分不断向上抽取,形成一个体系,就是集合框架。

3,集合框架的构成及其特点:
Collection
|-List: 元素是有序的,元素可以重复,因为该集合体系有索引。
|-ArrayList: 底层数据结构是数组。特点:查询速度快,但是增删稍慢,线程不同步。
|-LinkedList: 底层数据结构是链表。特点:查询速度慢,但增删很快,线程不同步。

|-Vector: 底层数据结构也是数组,

和ArrayList的区别:

Vector在jdk1.0出现,ArrayList在jdk1.2才开始出现。
Vector是线程同步的,ArrayList是线程不同步的。
Vector的效率低,ArrayList的效率高。后来被ArrayList替代了。
ps: List集合判断元素是否相同,底层自动调用的是元素的equals方法。
|-Set: 元素是无序的(元素存入和取出的顺序可能不同),元素不可以重复。
|-HashSet: 底层数据结构是哈希表。特点:是线程不同步的。
保证元素唯一性的依据:通过元素的两个方法hashCode和equals决定的。
如果元素的hashCode值相同,才判断equals是否为true
如果元素的hashCode值不同,则不调用equals
|-TreeSet: 底层数据结构是二叉树。特点:可以对Set集合进行排序。
保证元素唯一性的依据:compareTo方法return0

它的两种排序方式:

一是让元素自身具备比较性,元素实现Comparebale接口,复写compareTo方法。一定注意次要条件的比较。

二是让集合自身具备比较性,定义比较器,将比较器对象作为参数传递给TreeSet的构造函数。


Map: 该集合存储的是键值对,一对一对往里存,而且要保证键的唯一性。
|-Hashtable: 底层数据结构是哈希表,不允许存入null键和null值,该集合线程是同步的,jdk1.0出现,效率低。
|-HashMap: 底层数据结构也是哈希表,允许使用null键null值,线程不同步,jdk1.2出现,效率高。替代了Hashtable
|-TreeMap: 底层数据结构是二叉树,线程不同步,用于给Map集合的键进行排序。
ps: Map集合取出元素的方式:keySet和entrySet,原理是将Map集合转成Set集合,通过迭代器取出。

集合和数组工具类;主要是掌握它们的方法,多看api文档。
|-Collections: 

|-Arrays:

 ------- android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值