假设我在 json-simple-1.1.1 中有一个JSONArray
调用。table
我想将其截断为最大数量的值。为此,我采用一个子集并重新分配它,如下所示:
List<Object> rows = this.table.subList(0, newSize);
table.clear();
table.addAll(rows);
但是,这样做会导致java.util.ConcurrentModificationException
上table.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);
}
}