轉自:http://blog.sina.com.cn/s/blog_4914a33b0100xtyj.html
//在remove一條資訊時,
ArrayList的大小已經改變(即list.size()已經改變);
在i大於等於list.size()時,迴圈跳出,後便的ArrayList不能再執行;
所以必須在remove的同時,執行i--,即i=i-1;
現在才能遍曆所有List中的資訊。也不能在用Iterator遍曆時使用remove,會拋異常。(java.util.ConcurrentModificationException; at java.util.ArrayList$ArrayListIterator.next)
public class TrickyAL {
publicstatic LinkedList<User> llu=newLinkedList<User>();
publicstatic HashMap<String,User> hmu=newHashMap<String,User>();
publicstatic ArrayList<User> ulist=newArrayList<User>(Arrays.asList
(newUser[]{
new User(2,"Eric"),
new User(3,"Eric"),
new User(1,"Aaron"),
new User(4,"Eric")
}
));
static{
llu.add(new User(1,"Aaron"));
llu.add(new User(2,"Eric"));
llu.add(new User(3,"Tom"));
hmu.put("1",new User(3,"Tom"));
hmu.put("2",new User(2,"Eric"));
hmu.put("3",new User(1,"Leo"));
hmu.put("3",new User(4,"Scott"));
}
publicstatic voiddeleteUser(ArrayList<User>urlist,String auser){
Iterator itr=urlist.iterator();
int c=urlist.size();
for(int i=0;i<c;i++){
if(auser.equals(urlist.get(i).name)){
urlist.remove(i);
i--;
c--;
}
}
}
public static voiddeleteUser(LinkedList<User>urlist,String auser){
Iterator itr=urlist.iterator();
int c=urlist.size();