带有LinkedList的foreach循环如何表现?

Dil*_*ali 1 java linked-list

我不确定在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)

..它会返回第一个红苹果还是最后一个?如果没有,它的表现究竟如何?

Mak*_*oto 5

增强型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)