当前位置: 首页 > 知识库问答 >
问题:

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

罗智刚
2023-03-14

我想要一个数组列表,并限制元素删除。我该怎么做?

共有3个答案

许亦
2023-03-14

使用google guava库中的ImmutableList类。

顺便说一句:这是一个副本:使ArrayList只读

贾兴学
2023-03-14

创建ArrayList的子类并重写remove方法

如果要禁止所有修改,请使用集合。不可修改列表。

霍永年
2023-03-14

List接口上创建一个不允许删除的包装器,只需所需的方法:

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...
    }
}

此外,您可以使用集合#unmodifiableList包装当前的列表,以避免删除元素(这是一个类似于上面提到的包装类,除了实现列表之外),但请注意,您也不能添加元素。

 类似资料:
  • 但是我们不能在集合中存储HashMap。我想要HashMap与键,值对作为返回值,这将被添加到列表中。也就是说,最终的值应该采用ArrayList>格式。 你能在这方面帮助我吗?谢了。

  • 问题内容: 我有一个,并且我想从中删除重复的字符串。我怎样才能做到这一点? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加回中: 当然,这破坏了中元素的顺序。

  • 我有一个程序,它从文件中获取输入,将文件中的每个单词保存为令牌,然后将每个令牌添加到数组列表中。 问题是arrayList出现了例如[“cat”,“dog”,“”,“”,“bird”],我不想在arrayList中出现空格。 总之,我的代码如下: 应该会删除空格,我已经通过从非文件数组列表中删除空格进行了测试。奇怪的是,如果我将其更改为,它将从ArrayList中删除cat。

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 这段代码运行良好,但我想知道它的性能,我指的是它的总体时间复杂度?

  • 问题内容: 我有一个包含一些对象的对象,例如,每个对象都有一个and 属性。如何从其中仅删除具有特定“名称” 的对象? 问题答案: 您可以使用如下形式: