遍歷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