JAVA001对象导论09

容器

如果不知道在解决某个特定问题时需要多少个对象,或者它们将存活多久,那么就不可能知道如何存储这些对象。如何才能知道需要多少空间来创建这些对象呢?(不可能知道)这类信息只有在运行时才能获得。

解决方案:创建另一种对象类型,这种新的对象类型持有对其他对象的引用。

这个被称为容器的新对象,在任何需要时都可扩充自己以容纳你置于其中的所有东西。不需要知道将来会把多少个对象置于容器中,只需要创建一个容器对象,然后让它处理所有细节。

exp.C++中的标准模板类库(Standard Template Library,STL)

JAVA中具有满足不同需要的各种类型的容器,List(用于存储序列)、Map(也被称为关联数组,用来建立对象之间的关联)、Set(每种对象类型只持有一个),以及诸如队列、树、堆栈等更多的构件。

真正需要的只是一个可以被操作,从而解决问题的序列。如果单一类型的容器可以满足所有需要,就没有理由设计不同种类的序列。

需要对容器有所选择,因为不同容器提供了不同类型的接口和外部行为(exp.堆栈和队列)

                                                不同的容器对于某些操作具有不同的效率(exp。ArrayList和LinkedList)


参数化类型

向继承结构的下层转型为更具体的类型。称为向下转型。向下转型为错误的类型,就会得到被称为异常的运行时错误。

当从容器中取出对象引用时,必须要以某种方式记住这些对象究竟是什么类型,这样才能执行正确的向下转型。

参数化类型机制:创建这样的容器,知道自己所保存的对象的类型,从而不需要向下转型以及消除错误的可能。

参数化类型就是一个编译器可以自动定制作用于特定类型上的类。

JAV中称为范型。<类型信息>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值