成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java集合類ArrayList循環中刪除特定元素

開發 后端
在項目開發中,我們可能往往需要動態的刪除ArrayList中的一些元素。本文將講解Java集合類ArrayList循環中刪除特定的元素。

在項目開發中,我們可能往往需要動態的刪除ArrayList中的一些元素。

一種錯誤的方式:

  1. <pre name="code" class="java">for(int i = 0 , len= list.size();i<len;++i){  
  2.  
  3.   if(list.get(i)==XXX){  
  4.  
  5.        list.remove(i);  
  6.  
  7.   }  
  8.  

上面這種方式會拋出如下異常:

  1. Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 
  2.     at java.util.ArrayList.RangeCheck(Unknown Source)  
  3.     at java.util.ArrayList.get(Unknown Source)  
  4.     at ListDemo.main(ListDemo.java:20

因為你刪除了元素,但是未改變迭代的下標,這樣當迭代到最后一個的時候就會拋異常咯。

可以對上面的程序進行如下改進:

  1. for(int i = 0 , len= list.size();i<len;++i){  
  2.  
  3.   if(list.get(i)==XXX){  
  4.  
  5.        list.remove(i);  
  6.        --len;//減少一個  
  7.   }  
  8.  

上面的代碼就正確了。

下面我們再介紹一種方案:

List接口內部實現了Iterator接口,提供開發者一個iterator()得到當前list對象的一個iterator對象。

  1. Iterator<String> sListIterator = list.iterator();  
  2. while(sListIterator.hasNext()){  
  3.     String e = sListIterator.next();  
  4.     if(e.equals("3")){  
  5.     sListIterator.remove();  
  6.     }  

上面這種也是正確的,并推薦使用第二種方案。

兩種方案實現原理都差多的,第二種只是jdk封裝了下。

查看ArrayList源碼會發現很多方法內部都是基于iterator接口實現的,所以推薦使用第二種方案。

原文鏈接:http://blog.csdn.net/lazy_p/article/details/7365324

【編輯推薦】

  1. Java集合框架總結:Set接口的使用
  2. Java的位移運算巧方法
  3. Java7的一個新類JLayer:裝飾的Swing組件
  4. 關于Java中內存溢出的解決辦法
  5. Java中的面向對象特性
責任編輯:林師授 來源: lazy_p的博客
相關推薦

2015-03-25 11:42:52

Java刪除特定元素

2012-05-29 15:29:14

JavaArrayList

2015-08-04 09:18:26

JavaArrayList元素

2024-02-22 08:59:41

JavaArrayListLinkedList

2010-09-09 16:26:51

SQL循環For

2024-01-05 15:06:04

元素程序員review

2022-01-07 19:50:14

元素java集合

2012-02-22 14:14:43

Java

2009-09-04 09:15:41

Java集合類

2023-07-26 07:15:13

HashMapArrayListLinkedList

2021-07-08 10:00:59

LinkedLis集合定義

2024-06-03 10:07:22

Vector類元素向量

2024-11-08 16:54:38

2024-11-25 07:00:00

2021-07-12 11:01:15

Vector元素方法

2021-07-22 09:53:34

Vector類Java添加元素

2025-02-10 07:40:00

Java集合工具類編程

2019-07-22 09:59:20

Java框架集合

2009-12-22 16:50:44

ADO.NET元素

2009-12-21 15:33:07

WCF集合元素
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美午夜精品理论片a级按摩 | 精品亚洲一区二区三区 | 国产福利资源在线 | 一区二区三区四区国产 | 亚洲精品一级 | 国产精品有限公司 | 黄色成人在线 | 亚洲精品一区二三区不卡 | 九九九视频| 久久精品亚洲一区 | 亚洲精品视频免费看 | 午夜精品久久久久久久久久久久久 | 一区二区三区在线免费观看 | 嫩草视频在线 | 青青久草| 亚洲综合一区二区三区 | 欧美一区二区三区,视频 | 交专区videossex农村 | 成人一区av偷拍 | 91精品久久久久久久久久入口 | 国产精品免费一区二区三区四区 | 中文字幕在线一区 | 欧美一区二区三区在线观看视频 | 久久精品伊人 | 国产精品国产三级国产aⅴ原创 | 日本精品视频一区二区三区四区 | 欧美日韩免费一区二区三区 | 在线观看国产 | 欧美精品久久久久 | 亚洲欧美一区二区三区情侣bbw | 日韩在线免费 | 国产一区不卡在线观看 | 国产精品不卡 | 四虎最新地址 | 亚洲婷婷一区 | 国产精品99久久久久久久vr | 中文字幕一级 | 国产色婷婷精品综合在线手机播放 | 中文字幕一区二区三区四区五区 | 久久成人人人人精品欧 | 欧美专区在线视频 |