您的位置:首页 > 编程语言 > Java开发

Java Collections Framework--(一 概述)

2007-08-16 12:32 267 查看
 
Java Collections Framework位于包java.util.*中,有两个顶层接口,Collection与Map接口。
1.Collection结构(图1-1 && 图1-2),Map结构(图1-3)

 


图1-1

 



 图1-2



 

图1-3
2.为什么要使用接口

如果不用接口,而使用类似ArrayList的具体类方法直接实现,那被人称之为硬代码。
接口提供一些类似的行为,实现动态可插入,也就是说能够动态的决定使用哪一种实现。
Collections.sort(List<T>,list),不管是ArrayList,还是Vector,或是LinkList,只要继承List接口,就可以调用它。
3.为什么用Collection接口,而不用AbstractCollection直接代替接口

“能够用接口就不要用聚合或集合,能够用聚合或集合就不要用继承。”是一位属于企业领导阶层的人在我校做兼职老师时说的。但就我能理解到的程度是:如果一个类除了必须继承AbstactCollection,还必须继承其他的类(OtherClass),但Java不支持双继承,这就导致AbstactCollection先必须继承OtherClass,这就出现了两个问题:第一,OtherClass很可能与AbstactCollection没有Has-a的关系,使用继承是错的,逻辑混乱。第二,即使有Has-a关系,但其他继承AbstactCollection的类无需用到OtherClass,这也导致逻辑混乱。

4.AbstractCollection的用途

AbstactCollection实现了接口Collection的部分通用功能(即所有子类可共用的代码),减少了编程量。它使用了缺省适用模式,如果不用AbstractCollection,而用一个具体的类实现接口,那么具体类就必须实现接口的所有函数,即使不实现,也要给出一个空的方法,这很不方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息