Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么ArrayList中的set方法不更新modCount?_Java_Arraylist_Collections - Fatal编程技术网

Java 为什么ArrayList中的set方法不更新modCount?

Java 为什么ArrayList中的set方法不更新modCount?,java,arraylist,collections,Java,Arraylist,Collections,modCount跟踪列表更改了多少次。 那么为什么set方法不更新它呢? 这里是来自JDK1.7的参考 public E set(int index, E element) { rangeCheck(index); E oldValue = elementData(index); elementData[index] = element; return oldValue; } 编辑:如果这个概念还没有到位,并且我们从列表中删除/修改了它,那么循环就不会出

modCount跟踪列表更改了多少次。 那么为什么set方法不更新它呢? 这里是来自JDK1.7的参考

   public E set(int index, E element) {
    rangeCheck(index);

    E oldValue = elementData(index);
    elementData[index] = element;
    return oldValue;
}
编辑:如果这个概念还没有到位,并且我们从列表中删除/修改了它,那么循环就不会出错。此概念的目标是对循环强制执行单一责任原则,并防止用户犯下他们可能没有意识到的罪行

此列表在结构上被修改的次数。结构修改是指那些改变列表大小的修改,或者以某种方式干扰列表,使得正在进行的迭代可能产生不正确的结果


更改列表中的现有插槽不会导致结构更改。换句话说,它不会像添加或删除迭代器那样干扰现有迭代器

简言之,它不统计现有节点中的更改,而是统计其更改操作的数量(在这些操作之后,list.size()调用将显示不同的结果)

长见