gpt4 book ai didi

java - 如何理解Java中的 `Iterable`和 `Iterator`?

转载 作者:行者123 更新时间:2023-11-30 03:09:54 25 4
gpt4 key购买 nike

我有这些代码:

class ReversibleArrayList<T> extends ArrayList<T> {
public ReversibleArrayList(Collection<T> c) {
super(c);
}

public Iterable<T> reversed() {
return new Iterable<T>() {
public Iterator<T> iterator() {
return new Iterator<T>() {
int current = size() - 1;

@Override
public boolean hasNext() {
return current >= 0;
}

@Override
public T next() {
return get(current--);
}

@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
}
};
}
}

此代码用于制作 ArrayList可以在 foreach 中反转.

有两个问题:

1、不懂方法public Iterable<T> reversed() ,该方法的返回值为Iterable还有Iterator .

2、我认为Interable只是一个接口(interface),接口(interface)可以用来返回值吗?

最佳答案

reversed() 创建并返回新的匿名类(这意味着,它创建某个实现 Iterable 的未命名类的对象),该类实现 Iterable 接口(interface)并实现该接口(interface)的 iterator() 方法。是的,接口(interface)可以用作返回类型,这是 OOP 的概念。这意味着该方法可以返回实现该接口(interface)的所有内容。

关于java - 如何理解Java中的 `Iterable`和 `Iterator`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33829148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com