java嵌套类数据成员

java嵌套类数据成员,java,iterator,nested-class,Java,Iterator,Nested Class,我有一个AVLTREE类,里面有一个内部类,它是一个迭代器。 迭代器仅由用户请求实例化。 假设我有以下代码: tree.add(10); tree.add(6); tree.add(19); Iterator<Integer> it1 = tree.iterator(); System.out.println(it1.next()); System.outrintln(it1.next()); tree.delete(10); System.outrintln(it1.next

我有一个AVLTREE类,里面有一个内部类,它是一个迭代器。 迭代器仅由用户请求实例化。 假设我有以下代码:

tree.add(10);
tree.add(6);
tree.add(19);

Iterator<Integer> it1 = tree.iterator();
System.out.println(it1.next());
System.outrintln(it1.next());

tree.delete(10);

System.outrintln(it1.next());
tree.add(10);
添加(6);
添加(19);
迭代器it1=tree.Iterator();
System.out.println(it1.next());
System.outrintln(it1.next());
删除(10);
System.outrintln(it1.next());
sysrem将打印“null”,尽管树还有另一个值:19。 在这种情况下,如何接近特定迭代器的实例并将其当前节点更改为已删除节点的后续节点


谢谢

在遍历基础集合时修改它们是一个有问题的情况,这就是为什么Java的内置集合在执行
for
循环时从它们中删除时会抛出
ConcurrentModificationException
iterator.remove()
是从集合中删除元素的更安全的方法


至于接近迭代器,除非您将集合的每个迭代器都存储在某个位置,并让迭代器允许对其状态进行内部“调整”,否则您无法接近迭代器。从长远来看,这是不可行的。

尝试
it1.remove()
if
it1.next()==10
问题是:我没有实现remove()方法(不在EXERSIZE描述中),它必须在类部分而不是主方法中。这一切取决于迭代器和数据结构的实现,以及您的需求。