遍历List集合同时删除元素的正确方法


for(String x:list){ 
  if(x.equals("del"))
  list.remove(x);
}

会报错:
Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
    at java.util.AbstractList$Itr.next(Unknown Source)


解决办法:
public class TestIterator {

	public static void main(String[] args) {
		List<String> list=new ArrayList<String>();
		list.add("a");
		list.add("b");
		list.add("c");
		Iterator<String> stringIterator=list.iterator();
		while(stringIterator.hasNext()){
			String s=stringIterator.next();
			if(s.equals("c")){
				stringIterator.remove();
			}
		}
	}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM