我想要一个ArrayList
,并限制元素删除。我该怎么做?
最佳答案
在 List
接口(interface)上创建一个包装器,不允许删除,只有所需的方法:
class MyArrayList<T> {
private List<T> list;
public MyArrayList() {
list = new ArrayList<T>();
}
public boolean add(T t) {
return list.add(t);
}
//add other desired methods as well
}
另一个不推荐的选项是从 ArrayList
扩展并重写 remove
方法什么也不做,但这是不希望的,因为你不应该从这些类扩展除非真的需要:
public MyArrayList<T> extends ArrayList<T> {
@Override
public boolean remove() {
//do nothing...
}
}
此外,您可以使用 Collections#unmodifiableList
包装当前的 List
避免删除元素(这是一个如上所述的包装类,除了实现 List
)但请注意,您也不能添加元素。
关于java - 如何防止在 Java 中从 ArrayList 中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369595/