编程中定义的方法报异常问题
下面是一個“關于集合的迭代刪除問題”
public class? TestIterator{
??????? public static void main(String[] args) {
??????????????? List<String> aList = new ArrayList<String>();
??????????????? aList.add("aaa");
??????????????? aList.add("bbb");
??????????????? aList.add("asdf");
??????????????? aList.add("jvaa");
??????????????? aList.add("aaaa");
??????????????? aList.add("itcast");
??????????????? System.out.println(aList);
??????????????? delElements1(aList);
??????????????? delElements2(aList);
??????????????? delElements3(aList);
??????????????? System.out.println(aList);
??????? }
??????? public static void delElements1(List<String> aList) {
??????????????? for (String str : aList) {
??????????????????????? if (str.equals("aaa")) {
??????????????????????????????? aList.remove(str);
??????????????????????? }
??????????????? }
??????? }
??????? public static void delElements2(List<String> aList){
??????????????? Iterator<String> it = aList.iterator();
???????????????? while(it.hasNext()){
??????????????????????? String str = it.next();
??????????????????????? if(str.equals("aaa")){
??????????????????????????????? aList.remove(str);
??????????????????????? }
???????????????? }
??????? }
???????
??????? public static void delElements3(List<String> aList){
??????????????????????? Iterator<String> it = aList.iterator();
???????????????????????? while(it.hasNext()){
??????????????????????? String str = it.next();
??????????????????????? if(str.equals("aaa")){
??????????????????????????????? it.remove();
??????????????????????? }
???????????????? }
??????? }
}
以上代碼中delElements1,delElements2都會報異常:Exception in thread "main" java.util.ConcurrentModificationException,而delElements3則不會報異常,請問這是為什么呢?
答案由讀者來回答。 方便 你們來思考。
轉載于:https://www.cnblogs.com/long892230/archive/2012/07/19/2669527.html
總結
以上是生活随笔為你收集整理的编程中定义的方法报异常问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言#line预处理器
- 下一篇: javascript嵌套的对象被修改时l