成人免费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集合

2009-09-04 09:15:41

Java集合類

2012-02-22 14:14:43

Java

2023-07-26 07:15:13

HashMapArrayListLinkedList

2024-11-08 16:54:38

2021-07-08 10:00:59

LinkedLis集合定義

2024-06-03 10:07:22

Vector類元素向量

2021-07-12 11:01:15

Vector元素方法

2024-11-25 07:00:00

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技術棧公眾號

主站蜘蛛池模板: 国产999精品久久久久久 | 91av在线免费 | 99热播放| 免费看片在线播放 | 成人免费视频一区二区 | a在线观看 | 在线视频日韩精品 | 亚洲欧美综合精品另类天天更新 | 精品久久久久久亚洲综合网 | 色偷偷噜噜噜亚洲男人 | 91麻豆精品国产91久久久久久久久 | 久草网址| 亚洲国产视频一区 | 亚洲九九 | 欧美日韩不卡合集视频 | 中文字幕乱码视频32 | 精品国产91乱码一区二区三区 | a视频在线观看 | 国产精品日韩欧美一区二区三区 | 日韩成人在线播放 | 日日摸日日添日日躁av | 久久久久久久久久久久久9999 | 中文字幕视频在线观看免费 | 日韩在线免费视频 | 亚洲欧美日韩在线 | 欧美综合久久 | 91嫩草精品| 国内精品久久久久久久 | 日韩字幕 | 久久久久国产 | 逼逼视频| 国产成人免费网站 | 国产欧美精品一区二区三区 | 精品9999| 日韩精品一区二区三区中文字幕 | 国产成人综合久久 | 中文字幕第49页 | 国产激情一区二区三区 | sese视频在线观看 | 国产视频在线观看一区二区三区 | 欧美精品久久久久久久久久 |