1

假设我在 json-simple-1.1.1 中有一个JSONArray调用。table我想将其截断为最大数量的值。为此,我采用一个子集并重新分配它,如下所示:

List<Object> rows = this.table.subList(0, newSize);
table.clear();
table.addAll(rows);

但是,这样做会导致java.util.ConcurrentModificationExceptiontable.addAll(rows)线。踢球的是,只有一个线程。通过阅读有关 Oracle 的异常,很明显我在这里做了某种无效操作,但我不确定是什么。

这是将产生错误的代码:

package recordIndexer.server.importer;

import java.util.List;

import org.json.simple.JSONArray;
import org.json.simple.JSONValue;

public class Main {

    public static void main(String[] args) {
        JSONArray j = (JSONArray)JSONValue.parse("[\"Hello\", \"world\"]");
        List<Object> sub = j.subList(0, 1);
        j.clear();
        j.addAll(sub);

    }
}
4

0 回答 0