国产探花免费观看_亚洲丰满少妇自慰呻吟_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接口直接支持的唯一的修改方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固安县| 林芝县| 舟山市| 武乡县| 进贤县| 当涂县| 抚远县| 延庆县| 日土县| 上蔡县| 灵石县| 正阳县| 巩留县| 博罗县| 仙居县| 贵定县| 沙洋县| 四川省| 岳普湖县| 沽源县| 四子王旗| 安图县| 黄浦区| 文化| 雅安市| 崇左市| 东兴市| 修武县| 鄂尔多斯市| 务川| 固始县| 剑川县| 福泉市| 普格县| 安远县| 波密县| 兰坪| 南宁市| 五河县| 陇西县| 惠水县|