如何更改迭代器的方法?

GMa*_*Man 2 java iterator

嘿伙计们,我对Java很新,我对集合和迭代器有疑问.

在我的代码中,我有一个集合(在某个地方扩展可扩展的Iterable),每个对象基本上都是一个LinkedList.
我需要一个该集合的迭代器,所以我用这种方式写下来:

public class A{

     LinkedList<B> BList= new LinkedList<B>();

    ...

    public Iterator<B> iterator() {
        return BList.iterator();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,问题是,如何更改迭代器的任何方法?
或者更具体地说,如何禁用迭代器的remove方法?

谢谢.

Adr*_*onk 5

您可以返回不可修改列表的迭代器:

import java.util.Collections;

...

public class A{

    LinkedList<B> BList= new LinkedList<B>();

    ...

    public Iterator<B> iterator() {
        return Collections.unmodifiableList(BList).iterator();
    }
}
Run Code Online (Sandbox Code Playgroud)

这将使您的List包含一个不允许对列表结构进行任何更改的实现(如删除).然后根据包装列表返回一个迭代器.