Java Collection - 如何創(chuàng)建不支持remove()的迭代器
我們想知道如何創(chuàng)建不支持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();
}
};
}
}
運行結(jié)果如下: