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
的第一个和最后一个位置是否有另一个对象。这就是递归调用此方法的原因。这是否有效,因为它应该工作?我怀疑这是否正常。
答案 0 :(得分:0)
我想它不起作用。
如果一行有一个只有一个元素的lineItem,如果你在第一个if块中删除,当你输入第二个if块时你将会到达
line.inLineItems.get(line.inLineItems.size()-1)
line.inLineItems.size()将为0,您将获得ArrayIndexOutOfBoundsException。