一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java中for循環(huán)刪除集合陷阱

java中for循環(huán)刪除集合陷阱

2019-12-17 13:30hebedich JAVA教程

java中在增強(qiáng)for循環(huán)為什么不能增刪集合呢?一個(gè)循環(huán)迭代,跟集合的增刪改沒什么關(guān)系。修改集合不是for去做的。for只管循環(huán)迭代,你在循環(huán)里邊修改集合,改變集合的長度,順序?qū)ρh(huán)都有影響

首先看下面的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.LinkedList;
import java.util.List;
 
public class DeleteCollection {
  
  public static void main(String[] args) {
    List<String> list = new LinkedList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("e");
    for(int i=0;i<list.size();i++){ //循環(huán)刪除集合中的元素
      list.remove(i);
    }
    System.out.println("還剩余的元素個(gè)數(shù):"+list.size());
  }
}

上述的代碼按照思路應(yīng)該是對(duì)的,輸出的結(jié)果也應(yīng)該是0

看下面實(shí)際輸出的結(jié)果:

還剩余的元素個(gè)數(shù):2

你也許會(huì)問為什么呢?因?yàn)榧系拇笮∈莿?dòng)態(tài)變化的,當(dāng)你刪除一個(gè)元素之后,元素中的序號(hào)又重新排列,原來第二個(gè)應(yīng)該刪除的元素現(xiàn)在排在了第一個(gè)元素的位置,真正刪除的卻是第三個(gè)元素,依次類推,刪除的是第一個(gè)、第三個(gè)、第五個(gè)、、、、如果在原來刪除的代碼中加入語句:System.out.println("即將刪除的元素:"+list.get(i));即可驗(yàn)證。

加入上述語句后輸出的結(jié)果:

即將刪除的元素:a
即將刪除的元素:c
即將刪除的元素:e
還剩余的元素個(gè)數(shù):2

解決辦法:

究其原因是因?yàn)槟阋獎(jiǎng)h除的元素往前面移動(dòng)了,而你的i保存的值依舊往后走,所以如果讓i不往后走,往前走一個(gè),即可刪除本來排在第二個(gè)位置的元素現(xiàn)在排在了第一個(gè)位置上的元素。

更改后的核心代碼:

?
1
2
3
4
5
for(int i=0;i<list.size();i++){
    System.out.println("即將刪除的元素:"+list.get(i));
    list.remove(i);
    i--;
  }

結(jié)果:

即將刪除的元素:a
即將刪除的元素:b
即將刪除的元素:c
即將刪除的元素:d
即將刪除的元素:e
還剩余的元素個(gè)數(shù):0

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美高清无砖专区欧美精品 | 久久成人伊人欧洲精品AV | 千金肉奴隶免费观看 | 久久精品中文字幕 | 99ri国产精品 | 日本色频 | 欧美综合在线 | 欧美日韩国产精品自在自线 | 亚洲精品视频网 | 夫妻性生活一级黄色片 | 亚洲天堂一区二区在线观看 | 婷婷伊人综合亚洲综合网 | 狠狠综合久久综合网站 | 成人涩涩屋福利视频 | spank日本网站脱裤子打屁股 | 国产一区二区不卡 | 久久久久激情免费观看 | 99久久久久国产 | 91夜夜操| 国产精品特黄毛片 | 亚洲视频男人的天堂 | 美女流白浆 | 国产成人v爽在线免播放观看 | 亚洲日本免费 | 国产区成人精品视频 | 色婷婷六月丁香在线观看 | 日本大片免a费观看在线 | 91会员 | 久久综合中文字幕佐佐木希 | 97色伦图片7778久久 | 欧美大片一级片 | 射玉足| 99久热只有精品视频免费观看17 | a片毛片在线免费看 | 日本制服丝袜 | 无套白浆 | 鬼惨笑小说 | brazzersxxx欧美| 青青青青青 | 日韩欧美亚洲天堂 | 久久中文字幕亚洲精品最新 |