因此,据我所知,要将数组添加到列表中有两个选择:


.add(int index, E object)
.set(int index, E object)


如果我理解正确的话,add()只会在末尾或指定的索引中添加新条目,从而将该索引及其后面的所有内容向后推一个;
set()仅更改现有条目的值。

是否存在可用的表达式来覆盖给定索引处的数据(如果存在),如果不存在则创建一个新条目?

最佳答案

如果需要,可以覆盖addsetArrayList方法:

ArrayList<YourClass> list = new ArrayList<YourClass>() {
    @Override
    public void add(int index, YourClass element) {
        //Do what you want here
        //super.add(int index, YourClass element);
    }

    @Override
    public YourClass set(int index, YourClass element) {
        //Do what you want here
        //return super.set(int index, YourClass element);
    }
};

09-30 00:05