我有2 HashMap<Integer,Point3D>
對象名稱是positiveCoOrdinate and negativeCoOrdinates
。如何修復線程「main」中的異常java.util.ConcurrentModificationException
我有以下condition.if它檢查PositiveCoOrdinates
滿足該對應點加入到negativeCoOrdinates
和positiveCoOrdinates
刪除。
HashMap<Integer, Point3d> positiveCoOrdinates=duelList.get(1);
HashMap<Integer, Point3d> negativecoOrdinates=duelList.get(2);
//condition
Set<Integer> set=positiveCoOrdinates.keySet();
for (Integer pointIndex : set) {
Point3d coOrdinate=positiveCoOrdinates.get(pointIndex);
if (coOrdinate.x>xMaxValue || coOrdinate.y>yMaxValue || coOrdinate.z>zMaxValue) {
negativecoOrdinates.put(pointIndex, coOrdinate);
positiveCoOrdinates.remove(pointIndex);
}
}
在添加,刪除時,我收到以下錯誤。
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at PlaneCoOrdinates.CoordinatesFiltering.Integration(CoordinatesFiltering.java:167)
at PlaneCoOrdinates.CoordinatesFiltering.main(CoordinatesFiltering.java:179)
對於我的測試中,我提到裏面If
condition.it的工作細System.out.println(coOrdinate.x);
聲明。
如果我在If
條件內添加2行(上面提到的),它會拋出錯誤。
我該如何解決這個問題。
謝謝。
你可以通過使用'entrySet()' –