通常,程序总是根据运行时才知道的某些条件去创建新对象。
在此之前,并不知道所需对象的数量,甚至不知道确切的类型。
所以,为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象:
首先,不能依靠创建命名的引用来持有每一个对象了:
MyType aReference;
原因:
不知道实际上会需要多少这样的引用。大多数语言会提供数组的方式保存对象(应该说是对象的引用)
但是,数组虽然是保存一组对象或者基本类型数据的有效方式,其由于具有固定的尺寸,在一般情况下十分受限。
解决:
Java使用类库提供了一套相当完整的容器类来解决这个问题。
List、Set、Queue、Map
注意,这些对象类型也称为集集合类,但是由于Java的类库中使用了Collection这个名字来指代该类库的一个特殊子集,因此使用“容器”来称呼List等。
容器,提供了完善的方法来保存对象,解决对象数量惊人的问题。比如Set对于每一个值只保存一个对象,Map允许你将某些对象于其他一些对象关联起来的关联数组。
Java容器类都可以自动地调整尺寸,因此,并不需要担心容器应该设置为多大。
容器类,是可以显著增强你编程能力的基本工具。
基本概念
Java容器类库的用途:保存对象
A:Collection |
一个独立元素的序列 List:必须安装插入顺序保存元素 Set:不能有重复元素 Queue:按照排队规则确定对象产生的顺序(一般与被插入的顺序相同) |
B:Map |
一组成对的“键值对”对象,允许使用键来查找值 ArrayLsit:允许使用数字来查找值,从某种意义上,它将数字和对象关联在一起 映射表:允许使用另一个对象来查找某个对象,被称为“关联数组”(因为它将对象与另外一些对象关联在一起),或者称为“字典”(因为可以使用键对象来查找值对象,就像在字典中使用单词来定义一样) |
示例:ArrayList是最基本最可靠的容器
创建一个实例 | |
add()插入对象 | |
get()访问这些对象 | 此时需要使用索引,就像数组一样,但不需要方括号 |
size()方法 | 可以知道有多少元素添加了进来,从而不会不小心因索引越界而引发错误 |