java.util这个重要的包包含大量的类和接口,支持很多的功能。例如,java.util具有能产生伪随机数的类,还包括可以管理日期和时间、观察事件、操作位集合、标记字符串、处理格式化数据等的类。java.util包也包含了Java中功能最强大的子系统之一:集合框架(collections Framework). 以下将分析集合框架中的接口和类。
集合接口:
Collection | 允许处理一组对象,它位于集合层次结构的项部 |
Deque | 扩展Queue接口,以处理双端队列 |
List | 扩展Collection接口,以处理序列(列表中的可以包含重复的元素) |
NavigableSet | 扩展SortedSet接口,以处理基于最接近匹配搜索的元素的取回 |
Queue | 扩展Collection接口,以处理列表中的特殊类型,其中的元素只能从前面删除 |
Set | 扩展Collection接口,以处理集合,其中的元素必须唯一 |
SortedSet | 扩展Set接口,以处理排序的集合 |
除了集合接口外,集合中还使用了Comparator, RandomAccess, Iterator 和 ListIterator 接口。简而言之,Comparator接口定义如何比较两个对象,Iterator和ListIterator接口例举集合中的对象。
Queue接口中有几个方法值得注意:poll()和remove()这两个方法都是删除一个元素,它们的区别在于,如果队列为空,则poll()返回null,而remove()会抛出一个异常,另外存在获得但不删除队列顶部元素的两种方法:element()和peek()。它们的区别在于,如果队列为空,则element()抛出一个异常,而peek()返回null。
集合类:
AbstractCollection | 实现大部分Collection接口 |
AbstractList | 扩展AbstractCollection, 实现大部分List接口 |
AbstractQueue | 扩展AbstractCollection, 实现部分Queue接口 |
AbstractSequentialList | 扩展AbstractList, 用于顺序而不是随机访问集合的元素 |
LinkedList | 通过扩展 AbstractSequentialList 实现链表 |
ArrayList | 通过扩展 AbstractList实现动态数组 |
ArrayDeque | 通过扩展AbstractCollection和实现Deque接口,实现动态双端队列 |
AbstractSet | 扩展AbstractCollection, 实现大部分Set接口 |
EnumSet | 扩展AbstractSet, 用于enum元素 |
HashSet | 扩展AbstractSet, 用于哈希表 |
LinkedHashSet | 扩展HashSet, 允许按照插入的顺序来迭代 |
PriorityQueue | 扩展AbstractQueue, 支持基于优先级的队列 |
TreeSet | 在树中实现组,扩展AbstractSet |
时间: 2024-10-13 09:31:16