ืื ืื ConcurrentModificationException ื-Java?
ืืืืื
ืืื ื ืกืชืื ืขื ืืืืื ืืืฆื ืืชืจืืฉ ืืจืื ืื.import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
//Test driver for ConcurrentModificationException
public class ConcurrentModificationExceptionTestDriver1 {
public static void main(String[] args) {
List<String> businessDays = new ArrayList<>();
businessDays.add("Monday");
businessDays.add("Tuesday");
businessDays.add("Wednesday");
businessDays.add("Thursday");
businessDays.add("Friday");
businessDays.add("Saturday");
businessDays.add("Sunday");
Iterator<String> iterator = businessDays.iterator();
while (iterator.hasNext()) {
String day = iterator.next();
if (day.equals("Sunday")) {
// removing a list item while iterating
// leading to java.util.ConcurrentModificationException
businessDays.remove(day);
}
}
}
}
ืชึฐืคืึผืงึธื
ืืจืืื ืืฉืจืฉืืจ "ืจืืฉื" java.util.ConcurrentModificationException ื-java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1042) ื-java.base/java.util.ArrayList$Itr.next(ArrayList.java :996) ื-milstone.thirty.seven.ConcurrentModificationExceptionTestDriver1.main(ConcurrentModificationExceptionTestDriver1.java:22)
ืืืฆื ืืื ืืข ConcurrentModificationException ื-Java?
ืืฉื ื ืืจืืื ืฉืื ืืช ืืขืงืืคืช ืืืขืื ืขืืืจ ConcurrentModificationException . ืื ื ืืชืืืืกื ืืื. ืืชื ืืืื ืืืืืจ ืื ืืื ืืคื ืืฆืจืืื ืฉืื.- ืืืื ืข ืืฉืื ืื ืืืื ืืืืจืฆืื.
- ืืฉืชืืฉ ืืืืืืืช ืืกืืจืชืืืช ืขืืืจ ืืืืจืฆืื ืืฉืื ืื ืื ืืื ืืช.
- ืฆืืจ ืขืืชืง ืฉื ืขืจืืื ืฉืืฉ ืืฉื ืืช ืชืื ืืื ืฉืืืืฉ ืืืืืจืืืจืื. ืขืืื ืืช ืืขืจืืื ืืืืจ ืกืืื ืืืืืจืฆืื.
ืืืืื
ืื ื ืืืืื ืืืืคื ืฉืื ืชืืื ืืืืื ืข ื- ConcurrentModificationException .import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//Test driver for ConcurrentModificationException
public class ConcurrentModificationExceptionTestDriver2 {
public static void main(String[] args) {
List<String> businessDays = new ArrayList<>();
businessDays.add("Monday");
businessDays.add("Tuesday");
businessDays.add("Wednesday");
businessDays.add("Thursday");
businessDays.add("Friday");
businessDays.add("Saturday");
businessDays.add("Sunday");
System.out.println("Initial Business Days: " + businessDays);
// Method II - Using traditional for loop
for (int i = 0; i < businessDays.size(); i++) {
if (businessDays.get(i).equals("Sunday")) {
businessDays.remove(i);
}
}
Iterator<String> iterator = businessDays.iterator();
List<String> businessDaysToBeRemoved = new ArrayList<>();
// Method III - Creating a copy of elements
while (iterator.hasNext()) {
String day = iterator.next();
if (day.equals("Saturday")) {
// Add values to be removed in the list
businessDaysToBeRemoved.add(day);
}
}
businessDays.removeAll(businessDaysToBeRemoved);
System.out.println("Final Business Days: " + businessDays);
}
}
ืชึฐืคืึผืงึธื
ืืื ืขืกืงืื ืจืืฉืื ืืื: [ืฉื ื, ืฉืืืฉื, ืจืืืขื, ืืืืฉื, ืฉืืฉื, ืฉืืช, ืจืืฉืื] ืืื ืขืกืงืื ืืืจืื ืื: [ืฉื ื, ืฉืืืฉื, ืจืืืขื, ืืืืฉื, ืฉืืฉื]
GO TO FULL VERSION