Java for循环如何迭代到下面代码中的下一项
我试图学习Java中的迭代器设计模式。下面是迭代器模式实现的代码示例Java for循环如何迭代到下面代码中的下一项,java,Java,我试图学习Java中的迭代器设计模式。下面是迭代器模式实现的代码示例 public class IteratorDemo { /** * @param args the command line arguments */ public static void main(String[] args) { NameRepository repo=new NameRepository(); for(Iterator iter=repo
public class IteratorDemo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
NameRepository repo=new NameRepository();
for(Iterator iter=repo.getIterarter(); iter.hasNext();){
String name=(String) iter.next();
System.out.println("Name : "+name);
}
}
}
interface Container{
public Iterator getIterarter();
}
interface Iterator{
public boolean hasNext();
public Object next();
}
class NameRepository implements Container{
private String[] names={"A","B","C","D","E","F"};
@Override
public Iterator getIterarter() {
return new NameIterator();
}
private class NameIterator implements Iterator{
int index;
@Override
public boolean hasNext() {
return index < names.length;
}
@Override
public Object next() {
if(this.hasNext()){
return names[index++];
}
return null;
}
}
}
公共类迭代器demo{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
NameRepository repo=新的NameRepository();
for(迭代器iter=repo.getiterater();iter.hasNext();){
字符串名称=(字符串)iter.next();
System.out.println(“名称:”+Name);
}
}
}
接口容器{
公共迭代器getiterater();
}
接口迭代器{
公共布尔hasNext();
公共对象next();
}
类名存储库实现容器{
私有字符串[]名称={“A”、“B”、“C”、“D”、“E”、“F”};
@凌驾
公共迭代器getiterater(){
返回新名称迭代器();
}
私有类NameIterator实现了迭代器{
整数指数;
@凌驾
公共布尔hasNext(){
返回索引
这里的输出是A、B、C、D、E、F。我的问题是,for的
循环如何迭代到下一项?代码中似乎没有迭代值,但它仍然打印出整个数组请参见,如果索引
**
**iter.next()代码>…iter.hasNext();){String name=(String)iter.next();下一个函数将返回当前项并在同一句话中推进索引返回名称[index++]
(注意“++”运算符)
@Override
public Object next() {
if(this.hasNext()){
return names[index++];
}
return null;
}