熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

刪除JAVA集合中元素的實現代碼

2013-11-15 11:53:26  來源: JSP教程 

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

復制代碼 代碼如下:
public void operate(List list){
for (Iterator it = listiterator(); ithasNext();) {
String str = (String)itnext();
if (strequals("chengang")){
listremove(str);
}
}
}

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

  Exception in thread "main" javautilConcurrentModificationException
at javautilAbstractList$ItrcheckForComodification(AbstractListjava:)

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

復制代碼 代碼如下:
public void operate(List list){
List removeList= new ArrayList();
for (Iterator it = listiterator(); ithasNext();) {
String str = (String)itnext();
if (strequals("chengang")){
removeListadd(str);
}
}
listremoveAll(removeList);
}

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

復制代碼 代碼如下:
for (Iterator it = listiterator(); ithasNext();) {
String str = (String)itnext();
if (strequals("chengang")){
itremove();
}
}

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

 
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19832.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.