中关村国际软件人才教育联盟
第二十讲
第二十讲
集 合
集 合
2
2
中关村国际软件人才教育联盟
目标
目标
集合的概念
集合的概念
Collection
Collection
接口与
接口与
Iterator
Iterator
接口
接口
LinkedList
LinkedList
的使用
的使用
HashMap
HashMap
的使用
的使用
Vector
Vector
的使用
的使用
Properties
Properties
类的使用
类的使用
Stack
Stack
的使用
的使用
3
3
中关村国际软件人才教育联盟
集合概述
集合概述
集合用于在类中对数据进行组织
集合用于在类中对数据进行组织
集合是一种容器对象,用于按照一定的规则在其中保
集合是一种容器对象,用于按照一定的规则在其中保
存一组对象
存一组对象
在
在
J2SE
J2SE
中,引入了集合框架,它由集合库包构成
中,引入了集合框架,它由集合库包构成
(集合库包位于
(集合库包位于
java.util
java.util
包中
包中
)。该框架定义了许
)。该框架定义了许
多用于实现集合的接口和抽象类,并且描述了某些机
多用于实现集合的接口和抽象类,并且描述了某些机
制,比如迭代协议等
制,比如迭代协议等
集合框架中共定义了
集合框架中共定义了
9
9
个集合接口:
个集合接口:
–
最基本的接口是
最基本的接口是
Collection
Collection
–
5
5
个接口扩展了
个接口扩展了
Collection
Collection
接口,它们是:
接口,它们是:
Set
Set
,
,
List
List
,
,
SortedSet
SortedSet
,
,
Queue
Queue
,
,
BlockingQueue
BlockingQueue
–
其它的
其它的
3
3
个接口是:
个接口是:
Map
Map
,
,
SortedMap
SortedMap
,
,
ConcurrentMap
ConcurrentMap
。这
。这
3
3
个接口不扩展
个接口不扩展
Collection
Collection
接口
接口
4
4
中关村国际软件人才教育联盟
Collection
Collection
与
与
Iterator
Iterator
接口
接口
3-1
3-1
Collection
Collection
接口有下面两个基本方法:
接口有下面两个基本方法:
–
boolean add(Object obj)
boolean add(Object obj)
–
Iterator iterator()
Iterator iterator()
–
add
add
方法用于将对象添加给集合。如果添加对象后,该集合确
方法用于将对象添加给集合。如果添加对象后,该集合确
实发生了变化,那么该方法返回
实发生了变化,那么该方法返回
true
true
;如果该集合没有变化,
;如果该集合没有变化,
则返回
则返回
false
false
。例如,如果你试图将一个对象添加给一个集合,
。例如,如果你试图将一个对象添加给一个集合,
而该集合中已经有该对象了,那么
而该集合中已经有该对象了,那么
add
add
请求将被拒绝,因为该
请求将被拒绝,因为该
集合拒绝纳入重复的对象
集合拒绝纳入重复的对象
–
iterator
iterator
方法用于返回一个实现了
方法用于返回一个实现了
Iterator
Iterator
接口的类的对象。
接口的类的对象。
Iterator
Iterator
类型的对象称为迭代子对象,它专门用于访问集合
类型的对象称为迭代子对象,它专门用于访问集合
中的各个元素
中的各个元素
5
5
中关村国际软件人才教育联盟
Collection
Collection
与
与
Iterator
Iterator
接口
接口
3-2
3-2
Iterator
Iterator
接口共配有下面
接口共配有下面
3
3
个方法:
个方法:
–
Object next
Object next
()//
()//
返回要访问的下一个对象
返回要访问的下一个对象
–
boolean hasNext
boolean hasNext
()//
()//
如果存在另一个需要访问的元素,则
如果存在另一个需要访问的元素,则
返回
返回
true
true
–
void remove
void remove
//
//
用于删除上次调用
用于删除上次调用
next
next
时返回的对象
时返回的对象
–
通过反复调用
通过反复调用
next
next
方法,你可以逐个访问集合中的各个元素。
方法,你可以逐个访问集合中的各个元素。
但是,如果到达了集合的结尾,
但是,如果到达了集合的结尾,
next
next
方法便抛出了一个
方法便抛出了一个
NoSuchElementException
NoSuchElementException
异常。因此,你必须在调用
异常。因此,你必须在调用
next
next
方法之前调用
方法之前调用
hasNext
hasNext
方法。如果迭代子对象仍然拥有
方法。如果迭代子对象仍然拥有
可供访问的元素,
可供访问的元素,
hasNext
hasNext
方法返回
方法返回
true
true
–
想要查看集合中的所有元素,可使用如下方法:
想要查看集合中的所有元素,可使用如下方法:
Iterator iter=c. iterator()
Iterator iter=c. iterator()
while(iter. hasNext()){
while(iter. hasNext()){
Object obj=iter. netx();
Object obj=iter. netx();
……
……
}
}