1. 程式人生 > >for迴圈刪除List中的資料產生的問題

for迴圈刪除List中的資料產生的問題

在應用中大家可能會碰到一些場景 比如 一個listview 刪除選中條目
這需要去查詢選中項並移除 但是list 集合 座標會前移 所以第二次刪除的時候就會有找不到的清空也就是空指標或者其他問題
解決方案有兩個 一個是用迭代器另外一個就是倒序list刪除

迭代器

 Iterator it = appAdapter.getData().iterator();
                    while (it.hasNext()) {
                        Appli appli = (Appli) it.next();
                        if (appli.isCheck
) { it.remove(); } }

倒序刪除

 for (int i = groupFileorPhotoList.size()-1; i >=0; i--) {
                        List<ChildFileorPhoto> photos = groupFileorPhotoList.get(i).getChildFileorPhoto();
                        for
(int j = photos.size()-1; j >=0; j--) { ChildFileorPhoto childPhoto = photos.get(j); if (childPhoto.isCheck()) { photos.remove(childPhoto); if (!(photos.size()>0)) {//如果childe資料集合不大於0 就說明childe被清空就要移除掉當前grouitem
groupFileorPhotoList.remove(i); } } } }

相關推薦

for迴圈刪除List資料產生的問題

在應用中大家可能會碰到一些場景 比如 一個listview 刪除選中條目 這需要去查詢選中項並移除 但是list 集合 座標會前移 所以第二次刪除的時候就會有找不到的清空也就是空指標或者其他問題

Java迴圈刪除List元素

Java中迴圈刪除List中元素 寫在開頭:最近在處理一個包裝類時候,把Mapper查詢到的資料暫存到了ArrayList中,後續做迴圈遍歷刪除操作的時候,當時採用了foreach迴圈,結果彈出了ConcurrentModificationException錯誤。於是乎就在部落格上找

for each刪除List的元素出錯

場景是,需要刪除objList中的某幾個元素,自然而然,我們會習慣性的寫下如下語句: int i = 0;   for(Object o : objList)   {       if(o == value)      {          objList.remove(

Java使用for迴圈刪除陣列某個元素,並按原有順序列印

package com.ty.demo;//使用for迴圈刪除陣列中的某個元素,並按照原有順序打印出來public class Demo03 {public static void main(String[] args) {//定義一個數組String[] strs = {

如何正確遍歷刪除List的元素(普通for迴圈、增強for迴圈、迭代器iterator、removeIf+方法引用)

遍歷刪除List中符合條件的元素主要有以下幾種方法: 普通for迴圈 增強for迴圈 foreach 迭代器iterator removeIf 和 方法引用 (一行程式碼搞定) 其中使用普通for迴圈容易造成遺漏元素的問題,增強for迴圈foreach會報java.util.Concurre

關於再js使用for迴圈刪除節點

<div id="content"> <h1>html</h1> <h1>php</h1> <h1>javascript</h1> <h1>jquery</h1> <h1

python迴圈刪除list和dict型別注意事項

列表和字典在迴圈操作(增刪)時,其長度會改變 # 刪除 li = [11, 22, 33, 44, 'rock']中索引為單數的元素 # 方法一 del li[1::2] print(li) # [11, 33, 'rock'] # 方法二 new_li = [] for index in ra

vue使用some刪除list資料

在vue中可以使用some方法查詢需要刪除的所以 this.list.some((item, i) => { if (item.id == id) { this.list.splice(i, 1) return true; } }) 也可使用findI

Python3迴圈刪除列表資料

由於刪除列表中的資料後,列表長度會發生變化,因此Python在迴圈刪除列表中的資料時經常發生索引溢位錯誤,如: a=[1,3,7,3,2,5] for i in range(len(a)): if a[i]<3: del a[i]

foreach 迴圈刪除list的元素是報錯

最近專案中碰到一個從list中去掉一定條件的元素的問題,第一反應就是用foreach進行迴圈操作,具體程式碼如下 if (list1.size() > 0) { for(ParkingOrderEntity parkingOrderEnti

java怎麽刪除List的指定元素

pre size mov arr style () list pan move ArrayList al = new ArrayList(); al.add("a"); al.add("b"); //al.add("b"); //al.add("c");

JAVA循環刪除list元素的方法總結

tor 循環 toolbar i++ 使用 修改 log span .get  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳

Java循環刪除list元素方法的總結

bar del mov als lis remove for for循環 技術 JAVA中循環遍歷list有三種方式for循環、增強for循環(也就是常說的foreach循環)、iterator遍歷。 1、for循環遍歷list for(int i=0;i<li

AVA循環刪除list元素

叠代 修改 註意 bre iterator 多個 lis div 如果 文章來源: https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循環遍歷list有三種方式for循環、增強for循環(也就是常說的forea

Python刪除list多個相同元素

個人 err val pos 倒序 pan move 信息 style pop和remove方法都可以刪除list中的元素,個人更傾向於使用remove方法,因為在刪除過程中不會打印信息,安靜的把任務完成。 pop方法:刪除過程中會打印信息 >>>

JAVA循環刪除list元素的方法總結(跳格刪除問題解決)(轉)

今天 src log 觸發 導致 spi als exceptio spa  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至

python刪除list的空list

quest har lis code clas python 技術分享 image pytho list1 = [[], [], [], [], [], ‘text‘, ‘text2‘, [], ‘moreText‘] 如何刪除空列表,以便我得到: list2 = [‘t

Oracle刪除資料的時候應該注意的問題 Oracle與MySql他們一些表之間的區別

1. 刪除表的注意事項 在刪除一個表中的全部資料時,須使用TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE表空間該表的佔用空間並未釋放,反覆幾次DROP,DELETE操作後,該TABLESPACE上百兆的空間就被耗光了。

迴圈刪除多條資料,先拼接字串,再拆分成一個一個

1.前臺拼接需要刪除的ID字串 //刪除流程模板 delFlowModel: function () { var that = modObj; var

List資料新增實體物件,實體物件最後一個會把之前的內容覆蓋

錯誤的寫法:(這樣寫等於一直在操作同一個物件,物件中的內容都一樣) List<CommissionSystem> cList = new ArrayList<CommissionSystem>(); for (Goods goods : gList) {