java - 使用 Java 的无限对象?
问题描述
注意:我正在寻找关于我遇到的这个问题的简单反馈,而不是让任何人完成这个问题。
是否有可能创建一个程序,只需使用数组和继承就可以创建无限数量的对象?例如,允许雇主使用一个系统,他们可以在每次雇用某人时创建一个新员工。该程序还需要每个员工的唯一标识符 - 因此它需要将一个新员工 ID 与已创建的所有其他员工 ID 进行核对,以确保它不是重复的。
我做了一些研究,有些人提到了 ArrayLists。我问这个问题是因为这是一个在期中考试时提出的问题,但我并不是在寻找完成这个程序的新方法——只是问它仅使用数组和继承的可行性。我知道数组是固定的,所以我不确定如何不断增加新员工。
例如,如果我想创建一个员工 Jen,我知道我会去: Employee jen = new Employee();
为了使这个程序工作,我假设我必须制作通用对象,每个对象的名称都与已创建的任何其他对象不同。这可能与我提到的(仅使用数组和继承)有关吗?从我读过的内容来看,使用这个程序似乎是不可行的,但是一位教授提出了这个问题,所以我想知道是否有另一种方法来考虑这个问题。
编辑是因为人们在做出假设而不是阅读我的问题。提前致谢。
解决方案
如果你不允许使用 ArrayLists,你可以手动“扩展”一个普通的 Array。例如,检查当前数组是否已满,如果是,则创建一个两倍于当前数组大小的新数组并复制其所有当前值,并将该新数组分配为当前数组。
与仅使用 ArrayLists 相比,它的代码更多但效率更低,因为这是使用 Collections 框架的主要目的之一。
推荐阅读
- python - Numpy 给出'-0.0'
- python - 在 groupby agg 中使用列名列表?
- flutter - 未来
测试产生'用于空值的空检查运算符' - assembly - 如何在 cpu 模拟器上实现 pop 机器指令?
- python - Cron 没有运行启动 python 脚本的 docker 容器
- java - Jasper 报告导出 html 空白页
- javascript - 提取旧值而不是更新值
- java - http 调用应该发生在 MVC 中的哪一部分?
- authorize.net - Authorize.net Accept.dispatchData(secureData, responseHandler) 的 Accep.js 有 API 版本吗?
- azure-active-directory - 如何正确配置 ASP.NET Core 5 Swagger 以使用 Azure A/D 授权代码身份验证?