国产探花免费观看_亚洲丰满少妇自慰呻吟_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的基礎知識了解越多,代碼就會寫得越簡潔。相反如果你的代碼特別復雜,則方法或設計一定有問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普安县| 阿克陶县| 西贡区| 渭南市| 镇康县| 武安市| 德令哈市| 馆陶县| 广宁县| 桦川县| 阳山县| 铜陵市| 淳安县| 化德县| 华坪县| 湘乡市| 上思县| 利津县| 长兴县| 屯门区| 内丘县| 扶绥县| 上栗县| 会东县| 腾冲县| 西峡县| 文登市| 红安县| 大石桥市| 黄陵县| 磐石市| 汉中市| 南召县| 肥乡县| 长顺县| 南宁市| 宜丰县| 乌鲁木齐市| 乌兰浩特市| 修文县| 沅陵县|