- Java类集框架简介
- 类集接口
- Collection接口
- 允许重复的子接口—List
在基础应用中,通常我们可以通过数组来保存一组具有相同属性的对象或者基本类型的数据,但使用数组的弊端在于其大小是不可更改的,因此出于灵活性的考虑,可以使用链表来实现动态的数组。任何事情都有两面性,灵活性的代价就是操作上的繁琐。在计算机世界里,处理繁琐问题的常用方法就是将其封装,只向外提供可调用的方法视图。Java类集框架就是对这一方法的一种官方实现—套动态对象数组的操作类。本质上,Java类集框架就是Java对数据结构的一个大体上的封装。
类集是在JDK 1.2之后正式提出的概念。从类集开始用户就没有必要再像之前自己来编写链表了。但是类集的内部实现原理依然和之前一样,就是一个动态的对象数组,所不同的是,这个动态数组处理的细节,已被包装屏蔽起来了。这个理念和C++中STL (Standard Template Library,标准模板库)是一脉相承的。
在java.util包之中定义了所有与类集有关的操作接口:Collection、List、Set、Map、Iterator、ListIterator及Enumeration等;
在JDK1.5之后,这些接口都增加了泛型的定义,最早的时候这些接口中的内容都使用Object(对象)进行操作。出于安全性的考虑,以及避免转型之间的繁琐,JDK1.5以后将整个类集框架都升级为泛型(Generic programming),极大方便了用户。在Java中,每个变量都有其所属的数据类型,要么是基本的数据类型(int,float,char等),要么是自定义的数据类型—即类,而泛型的本质就是将变量的“类型”参数化,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别被称为泛型类、泛型接口、泛型方法。
类集接口类集框架定义了几个接口。
除了类集接口之外,类集也需要使用Comparator、Iterator和ListIterator等接口。
Collection接口是构造类集框架的基础,是单值数据操作的最大父接口,它声明了所有类集都将拥有的核心方法,这些方法的简明含义如下表所示。由于所有类集均实现了Collection,所以熟悉它的方法对于清楚地理解框架是必要的。其中有几种方法可能会引发一个UnsupportedOperationException异常,这些异常将发生在修改不能被修改的类集的时候。当一个对象与另一个对象不兼容,例如企图增加一个不兼容的对象到一个类集中时,将产生一个ClassCastException异常。
List(列表)是Collection接口之中最为常用的一个子接口,首先来观察一下List子接口的定义。
public interface List



