【发布时间】:2014-12-17 01:25:31
【问题描述】:
我正在尝试将 for 循环与新类一起使用 我创建了一个简单的 java 程序,它将从一个数字一直打印到 另一个。我似乎无法掌握 for 循环的窍门 这是我为测试它而编写的示例代码:
import java.util.Iterator;
public class Try {
public static void main(String[] args) {
for (int i : new IntegerLoop(1, 9)) {
System.out.print(i + " ");
}
System.out.println();
for (int i : new IntegerLoop(-3, 3)) {
System.out.print(i + " ");
}
System.out.println();
}
}
这是一个 IntergerLoop 类,它只处理要打印的第一个和最后一个数字 导入 java.util.Iterator;
public class IntegerLoop implements Iterable<Integer>, Iterator<Integer> {
int first, last;
int nextInt;
public IntegerLoop(int f, int l) {
first = f;
last = l;
nextInt = first;
}
public boolean hasNext() {
return nextInt >= first && nextInt <= last;
}
public Integer next() {
if (hasNext()) {
int result = nextInt; // needs Iterator
nextInt++;
return result;
}
return null;
}
@Override
public void remove() {
// TODO Auto-generated method stub
}
@Override
public Iterator<Integer> iterator() {
// TODO Auto-generated method stub
return null;
}
}
【问题讨论】:
-
有什么问题?
-
Iterables 真的不应该是 Iterators;他们的 iterator() 方法每次都应该真正返回一个新的 Iterator。
-
new Class()与您的代码有什么关系(不是说它会起作用)? -
我无法正确打印出第一个到最后一个数字。它并没有真正告诉我错误来自哪里,但我不确定我是否以正确的方式使用 for 循环
-
您的 iterator() 方法返回 null 几乎可以肯定是一个错误。我怀疑你得到了 NullPointerException?
标签: java class for-loop iterator implements