当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

调集库与便利操纵调集[Java编程]

赞助商链接



  本文“调集库与便利操纵调集[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

由于调集是我们常常都要用到的一种工具,所以一个调集库是非常必要的,它应当可以便利地反复利用.这样一来,我们便可以便利地取用各种调集,将其插入自己的程序.Java供应了这样的一个库,固然它在Java 1.0和1.1中都显得非常有限(Java 1.2的调集库则无疑是一个杰作).

1. 下溯造型与模板/通用性
为了使这些调集可以反复利用,大概“再生”,Java供应了一种通用范例,从前曾把它叫作“Object”.单根构造意味着、全部东西归根结底都是一个对象”!所以包容了Object的一个调集实际可以包容任何东西.这使我们对它的反复利用变得非常简便.
为利用这样的一个调集,只需增添指向它的对象句柄便可,今后可以通过句柄重新利用对象.但由于调集只能包容Object,所以在我们向调集里增添对象句柄时,它会上溯造型成Object,这样便丧失了它的身份大概标识信息.再次利用它的时刻,会得到一个Object句柄,而非指向我们早先置入的那个范例的句柄.所以怎样才能偿还它的本来面目,调用早先置入调集的那个对象的有效接口呢?
在这里,我们再次用到了造型(Cast).但这一次不是在分级构造中上溯造型成一种更“通用”的范例.而是下溯造型成一种更“特别”的范例.这种造型办法叫作“下溯造型”(Downcasting).举个例子来说,我们知道在上溯造型的时刻,Circle(圆)属于Shape(多少形状)的一种范例,所以上溯造型是安全的.但我们不知道一个Object毕竟是Circle还是Shape,所以很难保证下溯造型的安全举行,除非切当地知道自己要操作的是什么.
但这也不是绝对危险的,因为假定下溯造型成错误的东西,会得到我们称为“违例”(Exception)的一种运行期错误.我们稍后即会对此举行注释.但在从一个调集提取对象句柄时,必须用某种方法精确地记着它们是什么,以保证下溯造型的精确举行.
下溯造型和运行期查抄都要求花额外的时间来运路程序,并且程序员必须付出额外的精神.既然如此,我们能不能成立一个“智能”调集,令其知道自己包容的范例呢?这样做可消除下溯造型的必要以及潜在的错误.答案是必定的,我们可以采取“参数化范例”,它们是编译器能自动定制的类,可与特定的范例配合.比方,通过利用一个参数化调集,编译器可对那个调集举行定制,使其只承受Shape,并且只提取Shape.
参数化范例是C++一个重要的构成部份,这部份是C++没有单根构造的来由.在C++中,用于实现参数化范例的关键字是template(模板).Java目前还没有供应参数化范例,因为由于利用的是单根构造,所以利用它显得有些拙笨.但这并不能保证今后的版本不会实现,因为“generic”这个词已被Java“保存到将来实现”(在Ada语言中,“generic”被用来实现它的模板).Java采纳的这种关键字保存机制其实常常让人摸不着头脑,很难断定今后会发生什么事情.


  以上是“调集库与便利操纵调集[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 调集库与便利操纵调集
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .