Java Collections Framework--(一 概述)

 

Java Collections Framework位于包java.util.*中,有两个顶层接口,CollectionMap接口。

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,而用一个具体的类实现接口,那么具体类就必须实现接口的所有函数,即使不实现,也要给出一个空的方法,这很不方便。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值