Java 集合框架(Java Collections Framework)提供了一套丰富的接口和类来存储和操作数据。这些接口定义了集合的基本行为,是集合框架的核心。以下是 Java 集合框架中的基本接口:
1. Collection 接口
- 作用:
Collection
是集合框架的根接口,表示一组对象的集合。 - 主要方法:
add(E e)
:添加元素。remove(Object o)
:删除元素。contains(Object o)
:判断是否包含元素。size()
:返回集合大小。iterator()
:返回迭代器。
- 子接口:
List
、Set
、Queue
。
2. List 接口
- 作用:
List
表示有序的集合,允许重复元素。 - 特点:
- 元素按插入顺序存储。
- 可以通过索引访问元素。
- 主要实现类:
ArrayList
:基于动态数组实现,支持快速随机访问。LinkedList
:基于双向链表实现,支持快速插入和删除。Vector
:线程安全的动态数组(已过时,推荐使用ArrayList
)。
- 主要方法:
get(int index)
:获取指定位置的元素。set(int index, E element)
:设置指定位置的元素。indexOf(Object o)
:返回元素的索引。
3. Set 接口
- 作用:
Set
表示不允许重复元素的集合。 - 特点:
- 元素唯一性通过
equals()
和hashCode()
方法保证。 - 不保证元素的顺序(除非使用
LinkedHashSet
或TreeSet
)。
- 元素唯一性通过
- 主要实现类:
HashSet
:基于哈希表实现,无序。LinkedHashSet
:基于哈希表和链表实现,保留插入顺序。TreeSet
:基于红黑树实现,元素有序。
- 主要方法:
- 继承自
Collection
接口,没有新增方法。
- 继承自
4. Queue 接口
- 作用:
Queue
表示队列,通常遵循先进先出(FIFO)的原则。 - 特点:
- 支持在队尾添加元素,在队头移除元素。
- 主要实现类:
LinkedList
:可以用作队列。PriorityQueue
:基于堆实现,元素按优先级排序。
- 主要方法:
offer(E e)
:添加元素到队尾。poll()
:移除并返回队头元素。peek()
:返回队头元素但不移除。
5. Deque 接口
- 作用:
Deque
是双端队列(Double Ended Queue),支持在两端添加和移除元素。 - 特点:
- 可以用作栈(后进先出)或队列(先进先出)。
- 主要实现类:
ArrayDeque
:基于动态数组实现。LinkedList
:基于双向链表实现。
- 主要方法:
addFirst(E e)
:在队头添加元素。addLast(E e)
:在队尾添加元素。removeFirst()
:移除并返回队头元素。removeLast()
:移除并返回队尾元素。
6. Map 接口
- 作用:
Map
表示键值对的集合,键不允许重复。 - 特点:
- 键唯一,值可以重复。
- 不继承自
Collection
接口。
- 主要实现类:
HashMap
:基于哈希表实现,无序。LinkedHashMap
:基于哈希表和链表实现,保留插入顺序。TreeMap
:基于红黑树实现,键有序。
- 主要方法:
put(K key, V value)
:添加键值对。get(Object key)
:根据键获取值。remove(Object key)
:根据键删除键值对。keySet()
:返回所有键的集合。values()
:返回所有值的集合。
7. SortedSet 接口
- 作用:
SortedSet
是Set
的子接口,表示元素有序的集合。 - 特点:
- 元素按自然顺序或自定义比较器排序。
- 主要实现类:
TreeSet
。
- 主要方法:
first()
:返回第一个元素。last()
:返回最后一个元素。headSet(E toElement)
:返回小于指定元素的子集。tailSet(E fromElement)
:返回大于等于指定元素的子集。
8. SortedMap 接口
- 作用:
SortedMap
是Map
的子接口,表示键有序的键值对集合。 - 特点:
- 键按自然顺序或自定义比较器排序。
- 主要实现类:
TreeMap
。
- 主要方法:
firstKey()
:返回第一个键。lastKey()
:返回最后一个键。headMap(K toKey)
:返回键小于指定键的子映射。tailMap(K fromKey)
:返回键大于等于指定键的子映射。
9. Iterator 接口
- 作用:
Iterator
用于遍历集合中的元素。 - 主要方法:
hasNext()
:判断是否还有下一个元素。next()
:返回下一个元素。remove()
:移除当前元素。
10. Iterable 接口
- 作用:
Iterable
表示可迭代的集合,提供了iterator()
方法。 - 主要方法:
iterator()
:返回一个迭代器。
11. Comparable 和 Comparator 接口
- 作用:用于定义对象的排序规则。
- Comparable:
- 定义自然排序规则,实现
compareTo()
方法。
- 定义自然排序规则,实现
- Comparator:
- 定义自定义排序规则,实现
compare()
方法。
- 定义自定义排序规则,实现
12. 总结
接口 | 说明 |
---|---|
Collection | 集合框架的根接口,表示一组对象的集合。 |
List | 有序集合,允许重复元素。 |
Set | 无序集合,不允许重复元素。 |
Queue | 队列,遵循先进先出(FIFO)原则。 |
Deque | 双端队列,支持在两端添加和移除元素。 |
Map | 键值对集合,键不允许重复。 |
SortedSet | 元素有序的集合。 |
SortedMap | 键有序的键值对集合。 |
Iterator | 用于遍历集合中的元素。 |
Iterable | 表示可迭代的集合。 |
Comparable | 定义自然排序规则。 |
Comparator | 定义自定义排序规则。 |
THE END
暂无评论内容