国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

刪除JAVA集合中元素的實現代碼

2019-11-26 16:02:29
字體:
來源:轉載
供稿:網友

經常我們要刪除集合中的某些元素。有些可能會這么寫。

復制代碼 代碼如下:

  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的基礎知識了解越多,代碼就會寫得越簡潔。相反如果你的代碼特別復雜,則方法或設計一定有問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彝良县| 霸州市| 衡水市| 齐齐哈尔市| 二连浩特市| 龙川县| 桂阳县| 区。| 武义县| 马鞍山市| 马尔康县| 昌吉市| 三江| 新竹县| 碌曲县| 南丰县| 新干县| 财经| 建平县| 苗栗县| 交城县| 崇阳县| 玉树县| 蛟河市| 揭阳市| 木里| 陇南市| 汾西县| 临泉县| 龙口市| 河津市| 宁城县| 子长县| 平南县| 平山县| 湖南省| 汽车| 西宁市| 皮山县| 时尚| 和静县|