国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用iterator節省代碼

2019-11-18 15:14:14
字體:
來源:轉載
供稿:網友

  當對map 或者collection執行iterate時,通過遍歷map或者collection應用程序接口(API)刪除一個元素是非法的。假如你試著運行如下的代碼:

import java.util.*;
public class TestIterator {

static public void main(String[ ] strs) {
HashMap map = new HashMap( );
map.put("one", "1");
map.put("two", "2");
map.put("three", "3");
Iterator iterator = map.keySet( ).iterator( );
Object obj = iterator.next( );
obj = iterator.next( );
map.remove(obj);
obj = iterator.hasNext( );
}
}
就會拋出如下異常:

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.next(HashMap.java:736)
at TestIterator.main(TestIterator.java:14)

remove 方法使iterator無效,并且當在下一次對iteration操作的時候,異常就會拋出。仔細檢查iterator的API,以便正確地從iterator中移走當前值。可對前面的例子做如下修改:

map.remove(obj);
把上行換為:

iterator.remove(obj);
任何對map的改變都會使iterator無效,remove 是iterator接口直接支持的唯一的修改方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛川县| 许昌县| 山丹县| 宣武区| 酒泉市| 高阳县| 永善县| 九龙县| 麻城市| 临西县| 莱阳市| 屏东市| 新营市| 通海县| 张家川| 巢湖市| 龙江县| 咸丰县| 东海县| 鸡西市| 洱源县| 阿合奇县| 凤庆县| 沙洋县| 丁青县| 平定县| 安乡县| 清涧县| 英超| 巢湖市| 麦盖提县| 陕西省| 扶风县| 祁阳县| 舞钢市| 仁布县| 仁布县| 凌云县| 中西区| 商洛市| 宾川县|