java.util包是一个重要的包,包含许多类和接口,它还包括java的一个功能强大的子系统——集合框架,集合框架是一个复杂接
口和类的层,提供了管理对象组的优化技术。
使用集合框架的目的有几个,首先这种框架必须是高性能的,基础集合(动态数组、链表、树、哈希表)的实现是高效率的,
其次,框架允许以不同类型的集合以相似的方式进行操作,并且有高度的互用性,再次,必须很容易扩展和改变一个集合。所以集合
被设计为一系列接口,其概图如下:
支持集合框架的接口总结于下表:
1、Collection接口
Collection是构造集合框架的基础,collection是一个泛型接口,它必须被定义集合的任意类实现,它扩展了iterable接口,
学习它的方法有助于理解框架
boolean add(Object obj):向集合中添加一个元素。
boolean addAll(Collection c):向集合中添加一个集合的元素。
void clear():删除集合中所有的元素。
boolean remove(Object obj):删除集合中指定的元素。
boolean removeAll(Collection c):删除集合中指定的集合元素。
boolean isEmpty():判断集合是否为空。
boolean contains(Object obj):判断集合是否包含指定的元素。
boolean containsAll(Collection c):判断集合是否包含指定的集合中的元素。
Iterator iterator():迭代器。
hasNext():判断是否还有元素
next():获取下一个元素
boolean retainAll(Collection c):判断集合中是否有相同的元素。
Object[] toArray():把集合变成数组。
2、List接口
List接口扩展了collection,并声明集合的行为是存储一个序列的元素,使用基于零的索引,可以把元素插入到列表中或
者访问元素
相比较于collection,list的add(int a),可以将元素插入到特定位置
E get(int index)
e set(int index) 读取和设置元素
int indexof(obj)
int lastindexof(obj) 查找元素第一次或最后一次出现的位置
list<e> sublist(int start,int end) 截取子list
3、Set接口
set接口扩展了collection接口,并且声明该集合不允许存在相同的元素,它没有定义自己的方法
4、SortedSet接口
SortedSet接口扩展了Set接口并且声明自己是升序的集合,除了Set接口的方法,他还声明了自己的方法
Comparator<? super E> comparator() 返回排序的比较函数
E first() 返回排序集合的第一个元素
E last() 返回排序集合的最后一个元素
SortedSet headset(int end) 返回位置小于end的元素
5、Queue接口
它扩展了Collection接口,声明一个队列行为
E element() 返回队列顶部的元素
boolean offer(E obj) 尝试添加一个元素
E peek
E poll
E remove
只有两种方法可以获得被删除元素,poll和remove,区别在于,如果队列为空,poll返回null,remove抛出异常
有两种方法能够获得但不删除元素,peek和element,区别在于,如果队列为空,peek返回null,element抛出异常