動態刪除ArrayList中的元素

2021-07-11 13:18:04 字數 1096 閱讀 1510

昨天一位專案組同事需要在arraylist中刪除所有不等於指定值的元素,但是她弄了很久,發現總是刪得不完全。剛好我以前做過類似的功能,就告訴她是因為arraylist刪除元素後長度變小了,元素的索引也會跟著改變,但是迭代的下標沒有跟著相應的改變的緣故。

將一些刪除方法做一些總結:

/** 

* 刪除arraylist中值為"c"的元素

*/public

static

void

main(string args)   

/**

*        刪除list中值為"c"的元素

*  *   這種方式:

*   

*   當值為"c"的元素在arraylist中不連續儲存的時候,是可以把值為"c"的元素全部刪掉

*   

*   但是當值為"c"的元素在arraylist中有連續儲存的時候,就沒有把值為"c"的元素全部刪除

*   因為刪除了元素,arraylist的長度變小了,索引也會改變,但是迭代的下標沒有跟著變小

*/public

static

void

removelistelement1(listlist)   

}  }  

/**

* 刪除arraylist中值為"c"的元素

*  * 這種方式:

*  * 不管值為"c"的元素在arraylist中是否連續,都可以把值為"c"的元素全部刪除

*/public

static

void

removelistelement2(listlist)   

}  }  

/**

* 刪除arraylist中值為"c"的元素

*  * 這種方式:

*  * 不管值為"c"的元素在list中是否連續,都可以把值為"c"的元素全部刪除

*  * 需保證沒有其他執行緒同時在修改

*/public

static

void

removelistelement3(listlist)   

}  } 

動態刪除ArrayList中的元素

public class arraylisttest 刪除list中值為 c 的元素 這種方式 當值為 c 的元素在arraylist中不連續儲存的時候,是可以把值為 c 的元素全部刪掉 但是當值為 c 的元素在arraylist中有連續儲存的時候,就沒有把值為 c 的元素全部刪除 因為刪除了元素,...

動態刪除ArrayList中的元素

刪除arraylist中值為 c 的元素 public static void main string args 刪除list中值為 c 的元素 這種方式 當值為 c 的元素在arraylist中不連續儲存的時候,是可以把值為 c 的元素全部刪掉 但是當值為 c 的元素在arraylist中有連續儲...

ArrayList中資料刪除

在迴圈arrayllist時,經常會遇到remove操作,那麼arraylist的remove的底層是怎麼做的?abstractlist中,有乙個屬性modcount,這個屬性是跟蹤list中資料被修改的次數,任何對list的add remove操作,都將導致modcount 在abstractli...