欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

刪除JAVA集合中元素的實(shí)現(xiàn)代碼

 更新時(shí)間:2013年07月05日 11:28:40   作者:  
有時(shí)候我們要?jiǎng)h除集合中的某些元素,那么就可以參考下面的代碼

經(jīng)常我們要?jiǎng)h除集合中的某些元素。有些可能會(huì)這么寫。

復(fù)制代碼 代碼如下:

  public void operate(List list){
  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  list.remove(str);
  }
  }
  }

  這種寫法一運(yùn)行就會(huì)報(bào)如下異常:

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

  因?yàn)閘ist在循環(huán)中的時(shí)候是不可以刪除它的元素的。后來我是這樣做的,一種很笨的方法,思路是這樣的:創(chuàng)建一個(gè)List專門存放要被刪除的元素,循環(huán)過后,用List.removeAll方法把元素刪除。代碼如下:

復(fù)制代碼 代碼如下:

  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);
  }

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

復(fù)制代碼 代碼如下:

  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  it.remove();
  }
  }

  所以,你對(duì)Java的基礎(chǔ)知識(shí)了解越多,代碼就會(huì)寫得越簡(jiǎn)潔。相反如果你的代碼特別復(fù)雜,則方法或設(shè)計(jì)一定有問題。

相關(guān)文章

  • Java之jdbc連接mysql數(shù)據(jù)庫(kù)的方法步驟詳解

    Java之jdbc連接mysql數(shù)據(jù)庫(kù)的方法步驟詳解

    這篇文章主要介紹了Java之jdbc連接mysql數(shù)據(jù)庫(kù)的方法步驟詳解,JCBC技術(shù)是java開發(fā)必備的只是,jdbc連接mysql數(shù)據(jù)庫(kù),這是一個(gè)比較簡(jiǎn)單的方法,有興趣的可以了解一下
    2020-07-07
  • Java騷操作之CountDownLatch代碼詳解

    Java騷操作之CountDownLatch代碼詳解

    這篇文章主要介紹了Java騷操作之CountDownLatch代碼詳解,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java 多線程的同步代碼塊詳解

    Java 多線程的同步代碼塊詳解

    這篇文章主要介紹了Java 多線程的同步代碼塊,使用synchronized關(guān)鍵字創(chuàng)建線程同步方法是實(shí)現(xiàn)線程同步的關(guān)鍵,需要的朋友可以參考下
    2021-10-10
  • IDEA部署Tomcat的超詳細(xì)圖文教程

    IDEA部署Tomcat的超詳細(xì)圖文教程

    最近迫于無奈從我哪破舊的Eclipse轉(zhuǎn)換到了IDEA,然后就是超多的不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于IDEA部署Tomcat的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • spring在service層的方法報(bào)錯(cuò)事務(wù)不會(huì)回滾的解決

    spring在service層的方法報(bào)錯(cuò)事務(wù)不會(huì)回滾的解決

    這篇文章主要介紹了spring在service層的方法報(bào)錯(cuò)事務(wù)不會(huì)回滾的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 8種常見的接口請(qǐng)求重試方法總結(jié)

    8種常見的接口請(qǐng)求重試方法總結(jié)

    在跨境業(yè)務(wù)中,可能第三方的服務(wù)器分布在世界的各個(gè)角落,所以請(qǐng)求三方接口的時(shí)候,難免會(huì)遇到一些網(wǎng)絡(luò)問題,這時(shí)候需要加入重試機(jī)制了,下面小編就給大家分享幾個(gè)接口重試的寫法吧
    2023-11-11
  • springboot接受前端請(qǐng)求的方法實(shí)現(xiàn)

    springboot接受前端請(qǐng)求的方法實(shí)現(xiàn)

    本文主要介紹了springboot接受前端請(qǐng)求的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 基于CXF搭建webService的實(shí)例講解

    基于CXF搭建webService的實(shí)例講解

    下面小編就為大家?guī)硪黄贑XF搭建webService的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Maven熱部署devtools的實(shí)現(xiàn)示例

    Maven熱部署devtools的實(shí)現(xiàn)示例

    本文主要介紹了Maven熱部署devtools的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java IO流和文件操作實(shí)現(xiàn)過程解析

    Java IO流和文件操作實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java IO流和文件操作實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論