ArrayList要素削除同時異常C o n c u r r r e ntModificationExceptionソリューション
3453 ワード
/ 1 Iterator remove ,
for
(Iterator it = myList.iterator(); it.hasNext();) {
String value = it.next();
if
(value.equals(
"3"
)) {
it.remove();
// ok
}
}
System. out.println(
"List Value:"
+ myList.toString());
// 2 , ,
List templist =
new
ArrayList();
for
(String value : myList) {
if
(value.equals(
"3"
)) {
templist.remove(value);
}
}
// removeAll , Iterator
myList.removeAll(templist);
System. out.println(
"List Value:"
+ myList.toString());
// 3. CopyOnWriteArrayList
List myList =
new
CopyOnWriteArrayList();
myList.add(
"1"
);
myList.add(
"2"
);
myList.add(
"3"
);
myList.add(
"4"
);
myList.add(
"5"
);
Iterator it = myList.iterator();
while
(it.hasNext()) {
String value = it.next();
if
(value.equals(
"3"
)) {
myList.remove(
"4"
);
myList.add(
"6"
);
myList.add(
"7"
);
}
}
System. out.println(
"List Value:"
+ myList.toString());
// 4. Iterator ,
for
(
int
i =
0
; i < myList.size(); i++) {
String value = myList.get(i);
System. out.println(
"List Value:"
+ value);
if
(value.equals(
"3"
)) {
myList.remove(value);
// ok
i--;
// , i
}
}
System. out.println(
"List Value:"
+ myList.toString());