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

来源:互联网 发布:python汉字的utf8编码 编辑:程序博客网 时间:2024/06/07 01:34

------- 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培训、期待与您交流! ----------

0 0
原创粉丝点击