概述:
Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。Java程序员在具体应用时,不必考虑数据结构和算法细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率。
如果并不知道程序运行时会需要多少对象,或需要更复杂方式存储对象,可以使用Java集合框架
Java集合框架包含的内容:
1.接口
Collection Map
|
|
————————
|
| |
|
List Set
|
| | |
———— ———— —————
| | | | | |
2.具体类 ArrayList LinkedLis tHashSet TreeSet HashMap TreeMap
3.算法 collections(提供了对集合进行排序、遍历等多种算法实现,
java.util包下
)
集合框架的接口:
Collection:接口存储一组不唯一,无序的对象
List : 接口存储一组不唯一,有序的(插入顺序)对象
Set :接口存储一组唯一,无序的对象
Map : 接口存储一组键值对对象,提供key (键) 到 value (值)的映射
List接口的实现类:
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。
LinkedList采用链表存储方式。插入、删除元素时效率比较高
ArrayList集合类
List接口常用方法
方法名 | 说明 |
boolean add(Object o) | 在列表的末尾顺序添加元素,起始索引位置从开始 |
void add(int index,Object o) | 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 |
int size() | 返回列表中的元素个数 |
Object get(int index) | 返回指定索引位置处的元素,取出的元素是Object类型,使用前需要进行强制类型转换 |
boolean contains(Object o) | 判断列表中是否存在指定元素 |
boolean remove(Object o) | 从列表中删除元素 |
boolean remove(int index) | 从列表中删除指定位置元素,起始索引位置从0开始 |
LinkedList集合类
LinkedList常用方法
方法名 | 说明 |
void addFirst(Object o) | 在列表的首部添加元素 |
void addLast(Object o) | 在列表的末尾添加元素 |
Object getFirst() | 返回列表中的第一个元素 |
Object getLast() | 返回列表中的最后一个元素 |
Object removeFirst() | 删除并返回列表中的第一个元素 |
Object removeLast() | 删除并返回列表中的最后一个元素 |
迭代器Iterator
如何遍历List集合?
1.通过for循环和get()方法配合实现循环
2.通过迭代器Iterator实现遍历
所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历
Collection接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可以实现遍历
boolean hasNext():判断是否存在另一个可访问的元素
Object next():返回要访问的下一个元素