返回介绍

8.9 练习

发布于 2024-10-15 23:56:21 字数 1162 浏览 0 评论 0 收藏 0

(1) 新建一个名为 Gerbil 的类,在构建器中初始化一个 int gerbilNumber(类似本章的 Mouse 例子)。为其写一个名为 hop() 的方法,用它打印出符合 hop() 条件的 Gerbil 的编号。建一个 Vector,并为 Vector 添加一系列 Gerbil 对象。现在,用 elementAt() 方法在 Vector 中遍历,并为每个 Gerbil 都调用 hop()。

(2) 修改练习 1,用 Enumeration 在调用 hop() 的同时遍历 Vector。

(3) 在 AssocArray.java 中,修改这个例子,令其使用一个 Hashtable,而不是 AssocArray。

(4) 获取练习 1 用到的 Gerbil 类,改为把它置入一个 Hashtable,然后将 Gerbil 的名称作为一个 String(键)与置入表格的每个 Gerbil(值)都关联起来。获得用于 keys() 的一个 Enumeration,并用它在 Hashtable 里遍历,查找每个键的 Gerbil,打印出键,然后将 gerbil 告诉给 hop()。

(5) 修改第 7 章的练习 1,用一个 Vector 容纳 Rodent(啮齿动物),并用 Enumeration 在 Rodent 序列中遍历。记住 Vector 只能容纳对象,所以在访问单独的 Rodent 时必须采用一个造型(如 RTTI)。

(6) 转到第 7 章的中间位置,找到那个 GreenhouseControls.java(温室控制)例子,该例应该由三个文件构成。在 Controller.java 中,类 EventSet 仅是一个集合。修改它的代码,用一个 Stack 代替 EventSet。当然,这时可能并不仅仅用 Stack 取代 EventSet 这样简单;也需要用一个 Enumeration 遍历事件集。可考虑在某些时候将集合当作 Stack 对待,另一些时候则当作 Vector 对待——这样或许能使事情变得更加简单。

(7) (有一定挑战性)在与所有 Java 发行包配套提供的 Java 源码库中找出用于 Vector 的源码。复制这些代码,制作名为 intVector 的一个特殊版本,只在其中包含 int 数据。思考是否能为所有基本数据类型都制作 Vector 的一个特殊版本。接下来,考虑假如制作一个链接列表类,令其能随同所有基本数据类型使用,那么会发生什么情况。若在 Java 中提供了参数化类型,利用它们便可自动完成这一工作(还有其他许多好处)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文