日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

List 集合remove问题

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List 集合remove问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java的list集合中。使用remove刪除元素:

方法一:

static List<Integer> list3 = new ArrayList<Integer>(); static {list3.add(1);list3.add(2);list3.add(2);list3.add(2);list3.add(2); } private static void remove(List<Integer> list3) {for (int i=0;i<list3.size();i++) {if(list3.get(i) == 2) {list3.remove(i);}}print(list3); }
打印結果:1。2。2

造成問題的解決辦法是,在使用remove刪除list中元素時,list集合的size會發生變化。所以不能達到預期。


方法二:

private static void remove(List<Integer> list3) {for(int i = 0 , len= list3.size();i<len;++i){ if(list3.get(i)==2){ list3.remove(i); --len;//降低一個 --i;//多謝deny_guoshou指正,假設不加會出現評論1樓所說的情況。 } } print(list3); }

打印結果:1

因為動態的計算list大小,所以能夠得到正確答案


方法三:

Iterator<String> sListIterator = list.iterator(); while(sListIterator.hasNext()){ String e = sListIterator.next(); if(e.equals("3")){ sListIterator.remove(); } }List接口內部實現了Iterator接口。提供開發人員一個iterator()得到當前list對象的一個iterator對象。

注:對于并發情況,更因該使用第三種方法(迭代器)。否則一定會出現并發問題。




創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的List 集合remove问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。