嘿伙计们,我对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方法?
谢谢.
您可以返回不可修改列表的迭代器:
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包含一个不允许对列表结构进行任何更改的实现(如删除).然后根据包装列表返回一个迭代器.
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |