Java:针对未知数组大小的for循环进行了增强

布伦特

我学习Java大约需要5周的时间,并且正在做家庭作业。我已经满足了要求,但是想尝试使用该程序,以使其在实际使用时更加实用。

我们的任务是创建5种不同类型的对象,将它们存储在数组中,并使用Enhanced for循环处理数组。我试图修改程序,以允许用户创建1-100个不同的对象,将它们存储在数组中,然后使用增强的for循环处理数组。

我首先创建了一个足以容纳100个对象的数组。

    Employee employees[] = new Employee[ 100 ];

问题是,如果用户输入的对象少于100个,则大多数数组为空。增强的for循环尝试处理这些空白并引发错误。

    for ( Employee currentEmployee : employees ) 
    {
    ...........
    }

有解决这个问题的方法吗?我想允许用户确定创建了多少个对象,使用数组保存/引用这些对象,并使用增强的for循环处理该数组。有什么办法吗?

谢谢,

布伦特·克劳奇(Brent Crouch)

阿伦德

我同意其他有关首选使用列表而不是数组或以适当大小的数组开头的答案,但是如果这些都不可行,您也可以使用自己的方法。

我不相信对null值的增强的for循环扼流圈。您可以轻松地自己过滤掉它们。做就是了:

Employee employees[] = new Employee[100];
// fill the array
for (Employee currentEmployee : employees) {
    if (currentEmployee != null) {
        // process currentEmployee
    }
}
// or using continue to avoid undue nesting/indentation
for (Employee currentEmployee : employees) {
    if (currentEmployee == null)
        continue;
    // process currentEmployee
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

针对循环python进行了优化

确保React状态已针对游戏循环进行了更新

bash for未知数组循环

Gnuplot尽管进行了增强和转义,但仍显示下标

Java编译器是否针对不同的语言环境进行了翻译?

分析未知数组大小的数组

Ubuntu是否针对多核CPU进行了优化?

python中的datetime差异针对夜间进行了调整

Ubuntu是否已针对KRACK攻击进行了修补?

为什么Pytest进行了固定参数的嵌套循环

for-in循环进行了太远,展开时发现“ nil”

Java / Kotlin在步骤1的if循环中获取值,如果条件在for循环中也进行了一步

检查是否对numpy数组进行了排序

数组是否在 jOOQ 和 PostgreSQL 中进行了优化?

以编程方式找出是否对Java类进行了修补?

如何检查我的应用程序是否已针对Android进行了电池优化配置?

针对App Store中的iPhone 6信息文本进行了优化

Kotlin的Float,Int等是否已针对JVM中的内置类型进行了优化?

Visual Studio是否针对超线程微处理器进行了优化?

可能是GCC错误针对两个变量进行了编译

是否针对C标准进行了有条件的移动优化?

苹果是否已删除“针对iPhone 6和iPhone 6 Plus进行了优化”?

是否针对默认的相等运算符进行了C ++ 20功能测试?

不同夏令时的UTC日期针对当前时区进行了调整

二维直方图针对概率进行了归一化

VBA是否通过未知代理对“ HTTP GET”请求进行了处理?

增强arm的交叉编译,尽管在user-config.jam中进行了定义,但工具集仍未被识别

PHP登录表单(无sql)-针对文本文件记录进行了验证-未进行验证

SAS:即使进行了更改,还是陷入了循环?有指针吗?