2014-09-30 75 views
1
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的第一個或最後一個對象的ArrayList lineItems如果條件是true的使用方法。當項目被刪除,然後我想重複這個過程,並檢查是否有另一個對象在每個linelineItemstrue條件的第一個和最後一個位置。這就是爲什麼這個方法被遞歸調用。這是否工作,因爲它應該工作?我懷疑這是否正確。Java遞歸 - 這會工作嗎?

+13

'這個工作嗎?'你運行過嗎? – 2014-09-30 12:10:58

+0

你的單元測試說什麼? – 2014-09-30 12:11:27

+0

是的,但我不知道它是否真的工作,因爲我認爲它的工作 – Incredible 2014-09-30 12:11:52

回答

0

我想這是行不通的。

如果行有隻有一個元素是LineItem,如果你在第一次刪除,如果塊,當你進入第二個,如果您塊將達到

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

line.inLineItems.size()會0,你將得到一個ArrayIndexOutOfBoundsException。