超碰免费人人操|国产视频二区久久艹人人操|欧美激情第一页在线|久热最新无码中文视频|91精品国际成人|亚洲成人精品在线视频青青草|久草免费高清完整在线观看|你懂的AV在线日本黄网页|国产黄色AV日韩女同网|欧美成人色区导航片av

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

時(shí)間:2025-10-29 03:04:50 java語(yǔ)言

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

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

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

  復(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);

  }

  }

  }

  這種寫(xiě)法一運(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í)候是不可以刪除它的元素的。后來(lái)我是這樣做的,一種很笨的方法,思路是這樣的:創(chuàng)建一個(gè)List專(zhuān)門(mén)存放要被刪除的元素,循環(huán)過(guò)后,用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í)可以解決問(wèn)題了,但是方法實(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ì)寫(xiě)得越簡(jiǎn)潔。相反如果你的代碼特別復(fù)雜,則方法或設(shè)計(jì)一定有問(wèn)題。

【刪除JAVA中元素的實(shí)現(xiàn)代碼】相關(guān)文章:

java如何刪除集合中的元素03-16

Java 隊(duì)列實(shí)現(xiàn)原理及簡(jiǎn)單實(shí)現(xiàn)代碼03-18

java利用反射實(shí)現(xiàn)動(dòng)態(tài)代理實(shí)現(xiàn)代碼11-23

java構(gòu)造函數(shù)實(shí)現(xiàn)代碼示例12-15

java實(shí)現(xiàn)gif動(dòng)畫(huà)效果代碼參考01-31

冒泡排序的原理以及java代碼實(shí)現(xiàn)12-29

Java實(shí)現(xiàn)在不同線程中運(yùn)行的代碼實(shí)例詳解11-11

PHP中如何實(shí)現(xiàn)crontab代碼07-15

Dreamweaver代碼中的空鏈接怎么批量刪除11-02