【发布时间】:2011-05-23 16:08:57
【问题描述】:
我有一个循环通过 ArrayList 的 for 循环。
如果在for循环中满足条件:
- 我从
ArrayList中删除了当前元素 - 减小
ArrayList局部变量的大小 - 像这样减少 for 循环的索引,检查以确保它们永远不会低于零。
我们刚刚删除了ArrayList的最后一个元素的情况:
i = (i > 0) ? i-- : i;
我的问题是,当 i > 0 时,上述内容不会将 i 减 1。我无数次使用三元运算符,但从未见过这种行为。我已经测试过 i 确实 > 0 并且 i-- 部分正在被调用。它根本不会减少 i 的值。删除 0 值检查并简单地运行 i--; 确实会按预期减少 i。
EDIT2:好的,有人编辑了我的最后一次编辑,我提到在这种情况下我特别不使用 ListIterator,因为循环本身的性能敏感性质,在 Android 代码的关键部分。
【问题讨论】:
标签: java ternary-operator