2016-12-30 5 views
-4

if文の中で関数の実行より少し質問がありました。Javaのpoll()if文内

たとえば、このリストの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()'を呼び出すたびに、リストの1つの項目が削除されます。そして、 'edges.size()'が更新されます。 –

+0

ちょうどifの内側にあるのに、実際にこれらのアイテムを削除することがわかりました。それでもまだ答えられないでしょう、誰かがリールの説明をしているかもしれません。 – kobey

答えて

0

はい - 投票は、リストの最初の項目を削除し、それを返します。 これはif文で評価されます。無関係なノートで

、それはエッジの大きさが明らかにポーリングエッジので、すべてのループに変更されることを言及する価値がある1で要素数を削減します。しかし、あなたのforループは、の辺のサイズを正確に1回入力するとと評価します。これを実装するより良い方法は、例えばwhileループを使うことです。

int i = 0; 

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