使用java实现面向对象 第六章
第六章 集合框架
一:接口:即表示集合的抽象数据类型。
实现:即集合框架中接口的实现。
算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、
排序等。
Collection 接口存储一组不唯一,无序的对象
List 接口存储一组不唯一,有序(插入顺序)的对象
Set 接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
二、List接口
List接口的常用类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括
Null,允许重复,并且都保证元素的存储顺序。
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式。插入、删除元素时效率比较高。
1.List接口常用方法
方法名 |
说明 |
boolean add(Object o) |
在列表的末尾顺序添加元素,起始索引位置从0开始
|
void add(int index,Object o) |
在指定的索引位置添加元素。索引位置必须介于0和列表中元 素个数之间 |
int size() |
返回列表中的元素个数 |
Object get(int index) |
回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 |
boolean contains(Object o) |
判断列表中是否存在指定元素 |
boolean remove(Object o) |
从列表中删除元素
|
Object remove(int index) |
从列表中删除指定位置元素,起始索引位置从0开始
|
2.LinkedList的特殊方法
方法名 |
说明 |
void addFirst(Object o) |
在列表的首部添加元素 |
void addLast(Object o) |
在列表的末尾添加元素 |
Object getFirst() |
返回列表中的第一个元素 |
Object getLast() |
返回列表中的最后一个元素 |
Object removeFirst() |
删除并返回列表中的第一个元素 |
Object removeLast() 删除并返回列表中的最后一个元素
Map的常用方法
方法名 说 明
Object put(Object key, Object val) 以“键-值对”的方式进行存储
Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返回null
Object remove (Object key) 删除由指定的键映射的“键-值对”
int size() 返回元素个数
Set keySet () 返回键的集合
Collection values () 返回值的集合
boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true
Hashtable和HashMap的异同P190
三、迭代器Iterator
所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历
Collection 接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现
遍历
1.boolean hasNext(): 判断是否存在另一个可访问的元素
2.Object next(): 返回要访问的下一个元素
四、泛型集合
把任何类型对象通过add(Object obj) 放入List中,认为只是Object类型
通过get(int index) 取出List中元素时必须进行强制类型转换,繁琐而且容易出现异常
使用Map的put(Object key, Object value)和get (Object key)存取对象时存在同样问题
使用Iterator的next()方法获取元素时存在同样问题