集合框架
为什么需要集合框架?
保存一组对象,类集是一个动态的对象数组。
提供用于管理对象集合的接口和类。包含接口,实现类和算法。
在java中的一些特殊的类,内部可以存放多个其它数据类型的对象,把这些类叫做集合框架类。集合框架是变长的(动态)。
集合默认存储的是object类型的对象,而且还提供了优秀的算法。
集合框架的特点:1、这种框架是高性能的,对基本类集(动态数组,链接表,树和散列表)的实现是高效率的。2、框架必须允许不同类型的类集以相同的方式(任何对象的所有操作形式)和高度(集合中是某一类的对象)互操作方式工作。3、类集必须是容易扩展和修改的,为了实现这一目标,类集框架被设计成包含了一组标准接口。
数组与集合的区别 | |
数组 | 集合 |
定长 | 变长 |
只能存储本类与子类变量 可以放的元素数据类型:可以是基本数据类型,引用数据类型 | 可以存储任何类型的变量 只能放引用数据类型 |
排序需要自己定义算法 | 提供了排序的算法 |
集合与集合框架
1、集合有时叫做容器,简单来说,就是一个对象,能将具有相同性质的多个元素汇聚成一个整体。用于检索,操纵,传输数据。2、不能存放基本数据类型(4类8种),只能存储引用数据类型。
set集合:集合中的对象不按特定顺序排列,不能重复。
list列表:有序,可以重复。
map映射:键不能重复,值可以重复,
几种常见集合特点总结与比较
List接口 | 有序 | 可重复 |
|
|
|
Set接口 | 无序 | 不可重复 |
|
|
|
ArrayList实现类 | 实现List接口 | 可空 | 可重复 | 有序 | 不同步(线程不安全) |
Vector实现类 | 实现List接口 | 可空 | 可重复 | 有序 | 同步(线程安全),是一种老的方法 |
HashSet实现类 | 实现set接口 | 可空 | 不重复 | 无序 | 不同步 |
Map顶级接口 | 存放键值对 | Key不重复,value可以重复 |
|
|
|
HashMap实现类 |
| 可空 | 不重复 | 无序 | 不同步 |
HashTable实现类 |
| 非空 | 不重复 | 无序 | 同步 |
TreeSet | 实现Collection接口 NavigableSet 接口保证了它可以有序 | 不同步 | |||
TreeMap | 底层:jdk8及其以后都是位桶+链表+红黑树(之前没有红黑树进行优化) | 不同步 | |||
ConcurrentHashMap | 实现Map | KEY和Value不能为空 | 同步 | ||
Collection接口 |
类与类:单继承
类与接口:多实现
接口之间:多继承
Collection : 顶级接口。 List,Set继承Collection顶级接口
关于接口、实现类的具体介绍在后边再具体详说!