Tôi có 2 HashMap<Integer,Point3D>
tên đối tượng là positiveCoOrdinate and negativeCoOrdinates
.Làm cách nào để khắc phục Ngoại lệ trong chuỗi "chính" java.util.ConcurrentModificationException
Tôi đang kiểm tra PositiveCoOrdinates
với điều kiện sau.if nó thỏa mãn điểm tương ứng bổ sung vào negativeCoOrdinates
và xóa khỏi 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);
}
}
Trong khi thêm, xóa thời gian, tôi nhận được lỗi sau.
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)
Đối với thử nghiệm của tôi, tôi đề cập đến System.out.println(coOrdinate.x);
tuyên bố bên mỹ làm việc If
condition.it của.
Nếu tôi thêm 2 dòng (Những gì tôi đề cập ở trên) trong điều kiện If
, nó sẽ phát ra lỗi.
Làm cách nào để khắc phục sự cố này.
Cảm ơn.
Bạn có thể tránh tìm kiếm khóa mà bạn vừa thu được bằng cách sử dụng 'entrySet()' –