Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Collection接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
由Collection接口派生的两个接口是List和Set。
List接口
List是有序的Collection,这类似于Java的数组。 和下面要提到的Set不同,List允许有相同的元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,允许添加,删除,设定元素,还能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
LinkedList类
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。
Vector类
Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。
Stack 类
Stack继承自Vector,实现一个后进先出的堆栈。
分享到:
相关推荐
Java集合类是Java语言中用来存储数据的结构,它们是Java开发中非常重要的组件。在Java 2平台之前,集合框架的组成较为零散,自Java 2平台的JDK 1.2版本之后,引入了集合框架(Collections Framework),为集合类提供...
Java集合容器是Java编程语言中用于存储和管理对象的核心组件。在Java中,集合框架提供了多种数据结构,如列表(List)、集(Set)和映射(Map),以适应不同的数据处理需求。以下是对这些主要知识点的详细说明: 1....
由于文件内容包含了一些链接,指向具体的GitHub项目,说明作者在整理Java知识点的过程中还参考了网上的资源,并结合自己的思考进行了整理。这些项目是作者为了学习目的而进行的公开分享,内容可能涉及到机器学习、...
java Collection List Map Set集合详细讲解,
自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...
Java 集合是 Java 语言中最基本的数据结构之一,Java 集合框架(Java Collections Framework)提供了多种集合类型,包括 List、Set、Map 等,通过这些集合类型,可以存储和操作大量的数据。本文将对 Java 集合的基本...
这篇博文将深入探讨Java集合框架,包括其基本概念、常见类、接口和实现方式,以及如何进行有效的集合操作。以下是对这些知识点的详细说明: 1. **集合框架**: Java集合框架是一组接口和类,它们提供了在程序中...
内容概要:本文详细介绍了Java集合框架的核心概念和常见应用场景,涵盖集合的基本概念、特点、集合与数组的...其他说明:文章提供了丰富的代码示例和实际应用案例,帮助读者更好地理解和掌握Java集合框架的核心内容。
三、Java集合框架 3.1 集合接口:List、Set、Queue等接口定义了各种类型的集合,提供了添加、删除、查找等操作。 3.2 实现类:ArrayList、LinkedList、HashSet、HashMap等是常用的集合实现类,它们各有特点,适用...
Java集合框架是Java编程语言中不可或缺的部分,它提供了一种高效、灵活的数据组织方式。集合框架包括了多种接口和类,如List、Set、Map,它们各自有着独特的用途和实现方式。 1. List接口:List是有序的集合,允许...
Java集合框架是Java编程语言中用于存储和管理对象的核心组件,它为开发者提供了灵活且高效的数据结构选择。这个框架的设计目标是确保高性能、高度互操作性以及易于扩展。以下是对标题和描述中涉及的知识点的详细说明...
标题《三歪教你学Java集合(1)》和描述《Java集合》指明了该文档的内容为Java集合框架的教学,这是Java编程语言的一个核心部分,用于存储和操作对象集合。集合框架为程序员提供了各种不同类型的集合,如List、Set、...
以下是对Java集合框架的详细说明: 1. **集合接口**: - `Collection`:这是所有集合的顶级接口,定义了集合的基本操作,如添加、删除和检查元素。它分为两种主要子类型:`Set`和`List`。 - `Set`:不允许重复...
"java常用jar包集合"是一个综合性的资源,涵盖了多种Java开发中常用的技术框架和库,方便开发者快速构建和运行J2EE应用。以下是对这些jar包及其相关知识点的详细说明: 1. **数据库驱动包**: - **JDBC驱动**:...
Java集合与泛型是Java编程中非常核心的概念,它们为处理数据集合提供了一套丰富的接口和类库。在Java中,集合框架主要位于java.util包中,它提供了一套性能优化、设计精良的接口和类。泛型(Generics)是Java SE 5.0...
2. **Java集合**: - **集合框架**:包括List、Set、Map三大接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。 - **泛型**:提供类型安全,限制集合元素类型,避免强制类型转换。 - **...
内容概要:本文详细介绍了Java集合框架的重要性和在Android开发中的应用。首先,阐述了集合框架的基本概念,包括接口(Collection、Set、List、Map)和其实现类(ArrayList、LinkedList、HashSet、TreeSet、HashMap...
本文将详细解析如何利用Java集合来优化数据处理流程,并结合示例代码进行具体说明。 ### Java集合在数据库操作中的应用 Java集合框架提供了多种数据结构,如List、Set、Map等,它们在处理大量数据时非常有用,尤其...
本文将详细介绍一种在Java中循环遍历任何一个集合的通用方法,并通过示例代码来具体说明其实现过程及注意事项。 #### 1. 集合遍历的重要性 集合框架是Java中非常基础且重要的组成部分之一,它提供了存储和管理对象...
本文深入介绍了Java集合框架的重要组成部分及其相关接口与实现类,覆盖了主要集合类型(List、Set、Map等)的特点及基本使用方法,并对比了不同集合类间的优劣及适用场景。此外,本文还探讨了集合框架的高级特性(如...