DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> 刪除JAVA集合中元素的實現代碼
刪除JAVA集合中元素的實現代碼
編輯:JavaScript綜合知識     

經常我們要刪除集合中的某些元素。有些可能會這麼寫。

復制代碼 代碼如下:
public void operate(List list){
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
list.remove(str);
}
}
}

  這種寫法一運行就會報如下異常:

  Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)

  因為list在循環中的時候是不可以刪除它的元素的。後來我是這樣做的,一種很笨的方法,思路是這樣的:創建一個List專門存放要被刪除的元素,循環過後,用List.removeAll方法把元素刪除。代碼如下:

復制代碼 代碼如下:
public void operate(List list){
List removeList= new ArrayList();
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
removeList.add(str);
}
}
list.removeAll(removeList);
}

  這樣也確實可以解決問題了,但是方法實在太笨重,其實可以有更簡單的更高效的方法,就是用Iterator.remove方法,如下:

復制代碼 代碼如下:
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
it.remove();
}
}

  所以,你對Java的基礎知識了解越多,代碼就會寫得越簡潔。相反如果你的代碼特別復雜,則方法或設計一定有問題。

 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved