Java 如何基于ArrayList.util实现自定义ArrayList,而不需要删除元素
我想实现ArrayList,它不允许用户(或程序)从中删除元素。我想保留ArrayList的其余功能。Java 如何基于ArrayList.util实现自定义ArrayList,而不需要删除元素,java,arraylist,Java,Arraylist,我想实现ArrayList,它不允许用户(或程序)从中删除元素。我想保留ArrayList的其余功能。 问题是什么是更好的方法:扩展ArrayList还是扩展AbstractList,以及如何禁止删除(例如阴影)?常见的方法是抛出UnsupportedOperationException 在方法的实现中。抛出此异常 从将不使用但 它们是已使用的公共API的一部分 如果你想完全实现所有的方法 然后您应该使用列表界面。 否则-使用提供的抽象变量或 直接从所需的实现扩展 并重写默认行为。公共类NotR
问题是什么是更好的方法:扩展ArrayList还是扩展AbstractList,以及如何禁止删除(例如阴影)?常见的方法是抛出
UnsupportedOperationException
在方法的实现中。抛出此异常
从将不使用但
它们是已使用的公共API的一部分
如果你想完全实现所有的方法
然后您应该使用列表
界面。
否则-使用提供的抽象变量或
直接从所需的实现扩展
并重写默认行为。公共类NotRemovableArrayList扩展了ArrayList{
public class NotRemovableArrayList<T> extends ArrayList<T> {
@Override
public boolean remove(Object o) {
throw new UnsupportedOperationException();
}
...
}
@凌驾
公共布尔删除(对象o){
抛出新的UnsupportedOperationException();
}
...
}
您是否考虑过使用“更好的方式”在这里是一个非常模糊的表达方式?如何衡量解决方案的优点?感谢大家的回答,但我只需要禁止删除,因此Collections.unmodifiableList不适合,因为它不允许修改数据“问题是什么是更好的方法:扩展ArrayList还是扩展AbstractList”。问题是什么是更好的方法:扩展ArrayList还是扩展AbstractList“@ErwinBolwidt And?”?答案的第二部分特别提到了这一点。