以下代碼不起作用。這段代碼有什麼問題?編譯器在for循環中抱怨NumberList
不是Iterable
類。for-each循環只能遍歷數組或java.lang.Iterable的實例
什麼樣的類可以用於for-each循環?如何使NumberList
可迭代?我試着製作NumberList implement Iterable
,但它似乎不工作,因爲我不知道如何正確定義Iterator。
如果有人能演示如何使這段代碼工作,或者將我鏈接到一個很棒的教程。
public class Test{
public class NumberList{
private int numItems;
private Number[] numbers;
public NumberList(int size){
this.numbers = new Number[size];
this.numItems=0;
}
public void add(Number n){
this.numbers[this.numItems++]=n;
}
}
public void printPairs() {
ArrayList<Integer> num=new ArrayList<Integer>();
NumberList numbers = new NumberList(50);
numbers.add(4);
numbers.add(5);
numbers.add(6);
for(Number n1: numbers){
System.out.println(n1);
}
}
}
爲什麼你定義自己的列表,而不是使用一個ArrayList? –
首先,肯定使用JDK附帶的列表。正如前面的評論者所說,沒有用來定義你自己的。但是如果你想修復你的代碼,編譯器給了你答案。只需實現Iterable並填寫所需的方法。 –
還有其他關於如何實現Iterable的問題,包括[實現Iterable接口](http://stackoverflow.com/questions/6050379/implementing-the-iterable-interface)。 –