Guavaテーブルを使用し、時々スローするコードを読んでいますConcurrentModificationException
- テーブルの列を繰り返し処理し、同じループでテーブルを変更しているため、これは理解できます。これを解決するクリーンでパフォーマンスの高い方法はありますか? put の前に table.remove を実行して、それが機能することを期待できますか?
final Set<Optional<SimpleWorkDataValue>> columnKeys = table.columnKeySet();
for (final SimpleWorkDataValue timeSeriesValue : timeSeriesValues) {
final Optional<SimpleWorkDataValue> rowKey = Optional.of(timeSeriesValue);
for (final Optional<SimpleWorkDataValue> columnKey : columnKeys) {
if (!table.contains(rowKey, columnKey)) {
table.put(rowKey, columnKey, ResultSet.EMPTY);
}
}
}