2016-12-30 1 views
-4

if 문 내부의 함수 실행에 대해 약간의 질문이있었습니다.if 문 내부의 Java poll()

예를 들어 edges(integers)의이 목록은 목록에서 5를 가져올 때까지 모든 값이 목록에서 제거됩니다. 또는 정확히 무엇이 발생합니까?

LinkedList<Integer> edges = new LinkedList<>(); 

for (int i = 0; i < edges.size(); i++) { 
     if(edges.poll() == 5){ 
      break; 
     } 
} 
+2

실행 해 보았습니까? –

+0

'poll()'함수는'remove()'함수와 동일합니다. 그래서 여러분이'edges.poll()'을 호출 할 때마다 목록의 한 항목이 제거 될 것입니다. 그리고 나서, edges.size()가 갱신 될 것입니다. –

+0

그냥 if 내부에 있지만 사실이 항목을 제거한다는 것을 알았습니다. 아직 풀리지 않을 것입니다. 누군가가 릴 설명을 해줄 수 있습니다. – kobey

답변

0

예 - 여론 조사 목록의 첫 번째 항목을 삭제 해, 돌려줍니다. 이것은 if 문에서 평가됩니다. 관련이없는 노트에

, 그것은 가장자리의 크기가 분명히 하나에 의해 요소 수를 감소 폴링 가장자리부터 모든 루프에 변경됩니다 언급 할 가치가있다. 그러나 for 루프는 가장자리의 크기를 정확히 한 번 입력 할 때으로 평가합니다. 이를 구현하는 더 좋은 방법은 예를 들어 while 루프를 사용하는 것입니다.

int i = 0; 

while(i<edges.size()) 
{ 
    if(edges.poll() == 5) 
    { 
     break; 
    } 
    i++ 
}