Java 如何在函数中使用迭代器?

Java 如何在函数中使用迭代器?,java,printing,iterator,iterable,Java,Printing,Iterator,Iterable,我试图通过一些示例来了解Java中的迭代器功能,但我不知道如何访问迭代器以便开始打印集合 所以我有这个函数: class A <Item> implements Iterable <Item> { //....does stuff } public Iterator <Item> iterator() { return new Itor(); } class Itor implements Iterator <Item> { /

我试图通过一些示例来了解Java中的迭代器功能,但我不知道如何访问迭代器以便开始打印集合

所以我有这个函数:

class A <Item> implements Iterable <Item> {
   //....does stuff
}

public Iterator <Item> iterator() {
   return new Itor();
}

class Itor implements Iterator <Item> {
  //.....custom Iterator functions within
}
基本上,类A是一个保存值列表的数据结构,我想使用迭代器从另一个类中打印出这些值。我将如何实现这一点?我不确定语法会是什么样子

假设我还有一节课

class B {
    private class Node {
        A<Integer> n;      // I have another class that inserts values into the A class
                           // and I want to be able to print n out.                     
    }

    private void printA() {
        Iterator it = A.iterator(); //I get the non-static method error here.
    }
}

假设您的类实现了迭代器,那么您的类的客户机

1调用迭代器it=myInstance.Iterator;或者,最好调用迭代器it=myInstance.Iterator

2在循环中调用it.hasNext以查看是否还有任何对象,最后

3调用myObject=it.next在该循环内获取对象

这是一个很好的教程Mkyong的教程都很好,依我看:

//干净编译

import java.util.*; 

class A {   
  public List<String> list = Arrays.asList("a", "b", "c", "d", "e"); 
}

public class B {
  public Iterator<String> iterator;

  public static void main(String[] args) {
    A a = new A();
    B b = new B();
    b.iterator = a.list.iterator();
    while(b.iterator.hasNext()) {
      System.out.println(b.iterator.next());
    }   
  } 
}

弄明白了,就这么简单

for (Integer n : Node.n) {
    System.out.println(n);
}

当我尝试声明迭代器时,我得到的非静态方法迭代器无法从静态上下文引用。请向我们展示发生这种情况的示例代码。错误:当我尝试声明迭代器时,我得到的非静态方法迭代器无法从静态上下文引用。请向我们显示给出错误的代码。我猜你可能在你的主要工作中做错了什么。