java中ArrayList使用remove注意事項

來源:互聯網
上載者:User

轉自: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();
      
   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.