java - 如何防止在 Java 中从 ArrayList 中删除元素?

标签 java

我想要一个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/

相关文章:

java - jar 未找到类

java - Spring MVC 中的模型是什么

java - 正则表达式:允许最少的字母数字、点和 - 字符。任何地方都允许使用星号?

java - 如何定义一些奇怪的 java 进程的主机?

java - 使用枚举的线程安全单例

java - 如何在这个 Java 程序中获取逻辑以使我的循环正常工作?

C# Uri.EscapeDatastring() 等效于 Java

java - 1 个 IDREF 与 1 个以上的 JAXB 不一致

Java,将字符串转换为整数,然后将所有整数加在一起

java - 使用antlr检查方法是否有注释