java写一个Iterable接口的实现
时间: 2024-02-23 10:00:50 浏览: 79
好的,下面是一个简单的Java实现:
```
import java.util.Iterator;
public class MyIterable<T> implements Iterable<T> {
private T[] elements;
public MyIterable(T[] elements) {
this.elements = elements;
}
@Override
public Iterator<T> iterator() {
return new MyIterator();
}
private class MyIterator implements Iterator<T> {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < elements.length;
}
@Override
public T next() {
return elements[currentIndex++];
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
}
```
这里我们创建了一个实现了`Iterable`接口的自定义类`MyIterable`,它包含一个泛型数组`elements`。`MyIterable`类实现了`iterator()`方法并返回一个实现了`Iterator`接口的内部类`MyIterator`的实例。`MyIterator`类实现了`hasNext()`和`next()`方法,以便迭代`elements`数组中的元素。`remove()`方法在这个实现中不被支持。
我们可以使用以下代码来测试这个实现:
```
public static void main(String[] args) {
String[] arr = {"apple", "banana", "orange", "pear"};
MyIterable<String> iterable = new MyIterable<>(arr);
for (String element : iterable) {
System.out.println(element);
}
}
```
输出:
```
apple
banana
orange
pear
```
阅读全文