Java中的集合框架(Collections Framework)是一组接口和类的集合,这些接口和类提供了处理对象集(例如集合)的数据结构和算法。Java集合框架位于java.util
包下,它包括几种不同类型的集合,比如列表、集、映射等,以及这些集合的相关工具类和算法,比如迭代器和比较器。
集合框架的设计目标主要是提高性能、提供更高的抽象级别、增加统一性以及减少编程工作量。
主要接口
集合框架中的主要接口包括:
-
Collection: 所有集合类的根接口(不包括映射(Maps))。它定义了集合的基本操作,如添加元素、删除元素、清空集合、大小、迭代等。
-
List: 表示元素有序排列且可以重复的集合。List接口的实现类有
ArrayList
,LinkedList
, 等。 -
Set: 表示不允许重复元素的集合。Set没有额外的方法,使用的都是Collection的方法。Set接口的实现类有
HashSet
,LinkedHashSet
,TreeSet
等。 -
SortedSet: 是Set的子接口,保证元素处于排序状态。
-
NavigableSet: 是SortedSet的子接口,提供导航方法,比如返回小于或大于某个元素的元素。
-
Queue: 用于在处理之前保存元素的集合,提供了额外的插入、提取和检查操作。实现类有
LinkedList
,PriorityQueue
等。 -
Deque: 是Queue的子接口,代表双端队列,允许元素的插入和删除操作在队列的两端进行。
-
Map: 对象之间的映射关系,Map集合中存储了键值对(key-value pairs)。每个键最多映射到一个值。
-
SortedMap: 是Map的子接口,保证键处于排序状态。
-
NavigableMap: 是SortedMap的子接口,提供导航方法,比如返回小于或大于某个键的键值对。
实用类
集合框架也提供了几个实用类(java.util.Collections
和java.util.Arrays
),它们包含了可以用于集合的静态方法,如排序、搜索、复制、反转等。
迭代器
迭代器(Iterator)是一个用于遍历集合中元素的对象,它提供一个统一的方法来访问集合的元素,而无需关心集合的具体实现。Iterator
接口包含了如next()
, hasNext()
, 和remove()
等方法。从Java 5开始,支持foreach循环来简化迭代过程。
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String fruit = it.next();
System.out.println(fruit);
}
总结
集合框架提供了一套丰富的预定义接口和实现,可以帮助开发者处理集合数据类型,并实现了数据结构的通用操作,大大提高了开发效率。它是Java语言中最核心的部分之一。