我有 2 个HashMap<Integer,Point3D>
对象名称是positiveCoOrdinate and negativeCoOrdinates
.
我正在检查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)
对于我的测试,我System.out.println(coOrdinate.x);
在条件中提到了声明。它If
工作正常。
如果我在条件内添加 2 行(我上面提到的)If
,它会抛出错误。
我怎样才能解决这个问题。
谢谢。