Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。

Java 2集合框架图
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类:8个实现类(实线表示),对接口的具体实现。
在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。
· Collection 接口是一组允许重复的对象。
· Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。
· List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。
· Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
· 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

Java 2简化集合框架图
集合接口
1.Collection 接口
用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。
(1) 单元素添加、删除操作:
boolean add(Object o):将对象添加给集合
boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o
(2) 查询操作:
int size() :返回当前集合中元素的数量
boolean isEmpty() :判断集合中是否有任何元素
boolean contains(Object o) :查找集合中是否含有对象o
Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素
(3) 组操作 :作用于元素组或整个集合
boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素
boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合
void clear(): 删除集合中所有元素
void removeAll(Collection c) : 从集合中删除集合c 中的所有元素
void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素
(4) Collection转换为Object数组 :
Object[] toArray() :返回一个内含集合所有元素的array
Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。
此外,您还可以把集合转换成其它任何其它的对象数组。但是,您不能直接把集合转换成基本数据类型的数组,因为集合必须持有对象。
“斜体接口方法是可选的。因为一个接口实现必须实现所有接口方法,调用程序就需要一种途径来知道一个可选的方法是不是不受支持。如果调用一种可选方法时,一个 UnsupportedOperationException 被抛出,则操作失败,因为方法不受支持。此异常类继承 RuntimeException 类,避免了将所有集合操作放入 try-catch 块。”
Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。
1.1.AbstractCollection 抽象类
AbstractCollection 类提供具体“集合框架”类的基本功能。虽然您可以自行实现 Collection 接口的所有方法,但是,除了iterator()和size()方法在恰当的子类中实现以外,其它所有方法都由 AbstractCollection 类来提供实现。如果子类不覆盖某些方法,可选的如add()之类的方法将抛出异常。
1.2.Iterator 接口
Collection 接口的iterator()方法返回一个 Iterator。Iterator接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection 中除去适当的元素。

(1) boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出NoSuchElementException异常。
(2) void remove(): 删除上次访问返回的对象。本方法必须紧跟在一个元素的访问后执行。如果上次访问后集合已被修改,方法将抛出IllegalStateException。
“Iterator中删除操作对底层Collection也有影响。”
迭代器是 故障快速修复(fail-fast)的。这意味着,当另一个线程修改底层集合的时候,如果您正在用 Iterator 遍历集合,那么,Iterator就会抛出 ConcurrentModificationException (另一种 RuntimeException异常)异常并立刻失败。
分享到:
相关推荐
Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...
全面接触Java集合框架意味着要深入理解其核心接口、实现类以及它们在实际编程中的应用。 1. **接口概述**: - `Collection`:集合框架的顶级接口,所有单列集合(如List、Set)的父接口。 - `List`:有序、可重复...
Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的数据存储和操作机制。这个知识体系包括了各种接口和类,如List、Set、Map等,以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等。...
- 全面介绍了Java集合框架的各种组件,包括List、Set、Map等。 - 通过实例讲解了集合类的最佳使用方法。 - 探讨了Java集合框架背后的设计原则和模式,如迭代器模式等。 - **适用人群**:本书适用于那些希望深入...
随着学习的深入,还会接触到类、对象、异常处理、IO流、集合框架、多线程、网络编程等更复杂的话题。对于Java的学习,实践是关键,通过编写实际的代码来加深理解,才能更好地掌握这门强大的编程语言。
例如,`java.util`包中的ArrayList和HashMap是Java集合框架中的重要组成部分,它们分别提供了动态数组和键值对的存储功能;`java.io`包提供了文件读写、数据流处理的能力;`java.net`包则支持网络通信,如Socket和...
总的来说,《Java 2全方位学习》是一本全面覆盖Java基础与进阶知识的教材,无论你是刚接触Java的新手,还是希望巩固提高的开发者,都能从中受益。通过阅读和实践,你可以逐步掌握这个强大而广泛应用的编程语言,为你...
这个"java优秀教程大集合"压缩包提供了一系列资源,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言及其相关技术。 首先,我们看到有"html.chm"和"JavaScript高级程序设计.pdf",这两份资料说明了本集合不仅...
练习题的类型多样,覆盖了Java编程的多个重要方面,如基础语法、面向对象编程、数据结构、算法、异常处理、多线程、集合框架、IO流、网络编程等。这些内容不仅是Java学习的核心,也是企业对求职者技术能力的基本要求...
5. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。学习者需要掌握它们的特性和用法。 6. **多线程**:Java内置对...
4. **集合框架**:Java集合框架包括接口(如List、Set、Queue)和实现类(如ArrayList、LinkedList、HashSet、HashMap等),学习者应掌握它们的使用和选择原则。 5. **输入输出流**:I/O流用于处理数据的读写,包括...
标题中的“java程序设计例题全集”意味着这份资料包含了大量关于Java编程的实践题目,这些题目可能包括基础语法、类与对象、异常处理、集合框架、多线程、网络编程等多个方面,是学习和巩固Java编程技能的理想资源。...
此外,文件操作、异常处理、集合框架(如ArrayList、LinkedList、HashMap等)以及IO流也是Java基础学习的重要组成部分。Oracle是Java的主要提供商,其JDK(Java Development Kit)包含了Java运行环境和开发工具,...
总的来说,从“Java从入门到精通视频教程(全94讲)学习笔记整理”中,我们可以看到一个全面的Java学习路线,从基础语法、面向对象编程,到高级特性、实战项目,都是成为一名合格Java开发者不可或缺的部分。...
本套学习讲义涵盖了Java的基础到高级,结合前端技术、SSM框架以及Spring全家桶,旨在提供一个全面的Java开发学习路径。 首先,让我们从Java基础(JavaSE)开始。JavaSE,即Java Standard Edition,是Java的核心部分...
【Lesson10】可能是关于Java的高级主题,比如多线程、并发编程、同步机制,或者是Java集合框架的深入研究,例如Map接口和并发容器如ConcurrentHashMap。 通过这个【JAVA电子书】,读者不仅能够学习到Java语言的基础...
3. **集合框架**:Java集合框架是管理和操作对象数组的工具,包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。理解它们之间的区别和使用场景,以及迭代器、泛型、并发集合等高级特性...
Java集合框架是存储和管理对象的重要工具,包括List、Set、Map接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。了解它们的特性和适用场景,可以有效优化代码性能。 并发是Java的强项,Java提供了...
Java集合框架则提供了大量的容器类,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 线程编程是Java的一大特色,它使得程序可以同时执行多个任务。通过理解和使用Thread类以及Runnable接口,...