Java递归 - 这会有用吗?

时间:2014-09-30 12:09:51

标签: java recursion methods

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();

        }
    }
}

如果条件为line,则上面是我想要使用的方法,以便删除lineItems ArrayList中每个true的第一个或最后一个对象。删除项目后,我想重复此过程,并在line lineItems条件下检查每个true的第一个和最后一个位置是否有另一个对象。这就是递归调用此方法的原因。这是否有效,因为它应该工作?我怀疑这是否正常。

1 个答案:

答案 0 :(得分:0)

我想它不起作用。

如果一行有一个只有一个元素的lineItem,如果你在第一个if块中删除,当你输入第二个if块时你将会到达

line.inLineItems.get(line.inLineItems.size()-1)

line.inLineItems.size()将为0,您将获得ArrayIndexOutOfBoundsException。