面试题答案
一键面试import java.util.Iterator;
// 自定义集合类MyList
class MyList {
private int[] data;
private int size;
public MyList(int capacity) {
data = new int[capacity];
size = 0;
}
public void add(int num) {
if (size < data.length) {
data[size++] = num;
}
}
public Iterator<Integer> iterator() {
return new MyListIterator();
}
// 迭代器实现类
private class MyListIterator implements Iterator<Integer> {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < size;
}
@Override
public Integer next() {
if (hasNext()) {
return data[currentIndex++];
}
throw new RuntimeException("没有更多元素");
}
}
}
你可以使用以下方式测试这个代码:
public class Main {
public static void main(String[] args) {
MyList myList = new MyList(5);
myList.add(1);
myList.add(2);
myList.add(3);
Iterator<Integer> iterator = myList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
在上述代码中:
MyList
类表示自定义的集合类,内部使用数组data
存储整数,并通过size
记录实际存储的元素个数。add
方法用于向集合中添加元素。iterator
方法返回一个实现了Iterator
接口的迭代器对象。MyListIterator
是MyList
的内部类,实现了Iterator
接口的hasNext
和next
方法,用于按顺序遍历集合中的元素。- 在
Main
类中,创建了MyList
对象并添加了一些元素,然后通过迭代器遍历并输出这些元素。