为不可修改的列表实现迭代器

Fra*_*zoa 2 java iterator list

我正在实现一个基于AbstractSequentialList的不可修改的列表.现在,根据Oracle的文档:

对于不可修改的列表,程序员只需要实现列表迭代器的hasNext,next,hasPrevious,previous和index方法.

问题是我似乎必须提供删除,设置和添加方法的实现,尽管由于列表的不可修改性质,根本不需要这些实现,否则编译器会抱怨因为这些方法没有实现.

那么,我做错了什么,或者这是真正的方法吗?我应该实现这样的方法并在其中抛出某种异常吗?

非常感谢提前,

d.j*_*own 6

只需抛出UnsupportedOperationException您不需要实现的方法.由Iterator/ ListIteratorinterface文档https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html#remove()指定

抛出:UnsupportedOperationException - 如果此列表迭代器不支持remove操作

例如

@Override
public void remove() {
    throw new UnsupportedOperationException("Not supported yet.");
}
Run Code Online (Sandbox Code Playgroud)