Java集合框架深度解析:毕向东讲解Collection与List精髓

需积分: 9 2 下载量 19 浏览量 更新于2024-09-12 收藏 216KB PDF 举报
"毕向东总结的Java集合知识涵盖了Collection接口及其子接口、List和Set的特性和常用方法,以及Map接口的介绍,如ArrayList、LinkedList、HashSet、TreeSet、HashMap和TreeMap等。" 在Java编程中,集合是用于存储多个对象的数据结构,其长度可以根据需要动态变化。集合体系主要由Collection接口开始,它定义了所有集合的基本操作。例如: 1. **添加元素**: Collection接口提供了`add(obj)`方法,用于向集合中添加一个对象。 2. **删除元素**: 可以通过`remove(obj)`方法移除指定的对象,或使用`clear()`方法清空整个集合。 3. **查询元素**: `contains(obj)`用于检查集合是否包含特定对象,`isEmpty()`则根据`size()`方法判断集合是否为空。 4. **迭代访问**: 通过`iterator()`获取迭代器,以便遍历和操作集合中的元素。 5. **集合操作**: 如交集操作`retainAll(Collection)`,可以保留两个集合的公共元素。 6. **获取元素数量**: `size()`返回集合中元素的数量。 7. **转换为数组**: `toArray(T[] t)`方法可以将集合转换为数组。 进一步地,Java集合框架还包括了两种主要类型的接口: - **List**: 有序且允许重复元素的集合,具有索引的概念。List接口扩展了Collection,提供了以下特有的方法: - **添加/插入**: `add(index, obj)`在指定位置插入元素。 - **删除**: `remove(index)`移除指定索引处的元素。 - **获取**: `get(index)`返回指定索引的元素。 - **索引查找**: `indexOf(obj)`和`lastIndexOf(obj)`查找元素首次出现和最后一次出现的索引。 - **子列表**: `subList(start, end)`创建一个新的列表,包含原列表的一部分。 - **修改**: `set(index, obj)`替换指定索引的元素。 - **列表迭代器**: ListIterator允许在列表中双向迭代,并支持添加和修改元素。 - **Set**: 无序且不允许重复元素的集合。常见的实现有HashSet和TreeSet,它们分别基于哈希表和红黑树实现。 - **HashSet**: 提供快速的元素查找,但不保证元素的顺序。 - **TreeSet**: 元素按自然排序或自定义比较器排序,维护了一个有序的集合。 此外,还有Map接口,它存储键值对,而不是单个元素。常见的实现有HashMap和TreeMap: - **HashMap**: 提供快速的键值查找,基于哈希表实现,不保证键的顺序。 - **TreeMap**: 键值对按键的自然排序或自定义比较器排序,基于红黑树实现。 理解并熟练掌握这些集合类及其方法,对于Java开发来说至关重要,它们是处理数据和实现逻辑的基础工具。通过选择合适的集合类型和方法,可以有效地管理和操作程序中的数据。