【发布时间】:2014-09-30 12:09:50
【问题描述】:
private void formatLines() {
for (LineViewItem line:lineItems) {
if (line.inLineItems.get(0).word.getText().equals(" ")) {
line.inLineItems.remove(0); formatLines();
}
if (line.inLineItems.get(line.inLineItems.size()-1).word.getText().equals(" ")) {
line.inLineItems.remove(line.inLineItems.size()-1); formatLines();
}
}
}
如果条件为true,以上是我想用来删除lineItems ArrayList 中每个line 的第一个或最后一个对象的方法。删除项目后,我想重复此过程并检查lineItems 中每个line 的第一个和最后一个位置是否有另一个对象true 条件。这就是递归调用此方法的原因。这是否按预期工作?我怀疑这是否正确。
【问题讨论】:
-
will this work?你运行这个了吗? -
你的单元测试说明了什么?
-
是的,但我不确定它是否真的像我认为的那样有效
-
令人难以置信的 java 递归
-
为此使用线性结构而不是递归。类似
while (line.inLineItems.get(0).word.getText().equals(" ")) { line.inLineItems.remove(0); }