2014-09-30 3 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(); 

     } 
    } 
} 

위 내가 조건이 true 경우 lineItems ArrayList의 각 line의 첫 번째 또는 마지막 개체를 제거하기 위해 사용하려는 방법이다. 항목이 제거되면이 과정을 반복하고 각각 line의 첫 번째 및 마지막 위치에 lineItemstrue 조건에 다른 객체가 있는지 확인하려고합니다. 이것이이 메소드가 재귀 적으로 호출되는 이유입니다. 이것은 정상적으로 작동합니까? 나는 이것이 올바르게 작동하는지 의심 스럽다.Java 재귀 -이 작업을 수행 할 예정입니까?

+13

'이 작업을 수행 할 예정입니까? '실행 했습니까? –

+0

단위 테스트는 무엇을 말합니까? –

+0

예, 그렇지만 실제로 작동하는지 확실하지 않습니다. – Incredible

답변

0

나는 그것이 작동하지 않을 것 같아요. 당신이 2를 입력 할 때 블록, 블록 당신이

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

line.inLineItems.size에 도달 할 경우 경우 처음에 제거하면 라인이 단 하나의 요소와 LINEITEM가있는 경우

()입니다 0이면 ArrayIndexOutOfBoundsException이 발생합니다.

관련 문제