【发布时间】:2016-12-30 20:41:38
【问题描述】:
我对 if 语句中函数的执行有一点疑问。
例如这个edges(integers)的列表,所有的值都会从列表中删除,直到它从列表中拉出5,或者会发生什么?
LinkedList<Integer> edges = new LinkedList<>();
for (int i = 0; i < edges.size(); i++) {
if(edges.poll() == 5){
break;
}
}
【问题讨论】:
-
你试过运行它吗?
-
函数
poll()等价于remove()函数。因此,每次您拨打edges.poll()时,都会删除列表中的一项。然后,edges.size()将被更新。 -
刚刚发现它确实删除了这些项目,即使它在 if 中。仍然会不回答,也许有人对此有一个卷轴的解释。
-
它是
if声明的事实并不相关。为了判断edges.poll() == 5是否必须调用poll,这会从列表中删除第一项。这不会因为值不是5而被撤消。
标签: java if-statement linked-list queue