Java 递归 - 这行得通吗?

标签 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 的第一个和最后一个位置是否有另一个对象在lineItemstrue健康)状况。这就是为什么这个方法被递归调用。这能正常工作吗?我怀疑这是否有效。

最佳答案

我想这不会起作用。

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

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

line.inLineItems.size() 将为 0,并且您将收到 ArrayIndexOutOfBoundsException。

关于Java 递归 - 这行得通吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120515/

相关文章:

JavaScript 递归

recursion - 用 "E"边计算所有可能连通的平面图

python - 如何递归模拟随机游走?无循环(Python)

java - 如何知道方法是 N 还是 N^2

java - Java中如何使用通配符作为局部变量的类型?

java - 为对象分配一个空值,然后尝试拆箱

java - 从左到右调用实例/静态方法?

java - 我能否获得一些关于将方法引入我的工资计划的指导?

java - 由于文件权限,文件操作失败,hos_clientfileio.cxx 142

java - 如何获取 javax.comm API?