我不确定在foreach循环中LinkedList的行为.例如:
LinkedList<Apple> apples = new LinkedList<Apple>();
public Apple apple(String colour) {
for (Apple apple : apples) {
if (apple.getColour().equals(colour)) {
dosomething();
return apple;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
想象一下,列表中有许多红苹果,而不是任何特定的顺序.当它像这样被调用时:
apple("Red");
Run Code Online (Sandbox Code Playgroud)
..它会返回第一个红苹果还是最后一个?如果没有,它的表现究竟如何?
增强型for循环的行为就像从列表开头到结尾的迭代器一样.它将作用于符合您条件的第一个元素.
对于任何子类型都是如此Iterable; 也就是说,任何可以产生的东西Iterator.因此,Collection课程涵盖在内.
插图:您的增强功能是在封面下执行此操作:
for(Iterator<Apple> iterator = apples.iterator(); iterator.hasNext();) {
Apple apple = iterator.next();
if(apple.getColour().equals(colour)) {
dosomething();
return apple;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |