如何刪除JAVA集合中的元素

來源:互聯網
上載者:User
關鍵字 java 刪除 這樣 如下 chen
經常我們要刪除集合中的某些元素。 有些可能會這麼寫。  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的基礎知識瞭解越多,代碼就會寫得越簡潔。 相反如果你的代碼特別複雜,則方法或設計一定有問題。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.