首页javasetJava Collection - 如何创建不支持remove()的迭代器

Java Collection - 如何创建不支持remove()的迭代器

我们想知道如何创建不支持remove()的迭代器。
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Main {
  public static void main(String[] args) {
    Iterable<String> iterable = new MyIterable<String>("a", "b", "a", "b");

    for (Iterator<String> iterator = iterable.iterator(); iterator.hasNext(); iterator
        .remove()) {
      System.out.println(iterator.next());
    }
    System.out.println("Used in foreach");
    for (String s : iterable) {
      System.out.println(s);
    }

  }

}

class MyIterable<E> implements Iterable<E> {
  private Set<E> internalSet = new HashSet<E>();

  public MyIterable(E... all) {
    for (E e : all) {
      internalSet.add(e);
    }
  }

  public Iterator<E> iterator() {
    final Iterator<E> i = internalSet.iterator();
    return new Iterator<E>() {
      public boolean hasNext() {
        return i.hasNext();
      }

      public E next() {
        return i.next();
      }

      public void remove() {
        //throw new UnsupportedOperationException();
      }
    };
  }

}