黑马程序员技术交流社区
标题:
关于Set集合并发修改问题
[打印本页]
作者:
「AτS」
时间:
2016-3-24 16:48
标题:
关于Set集合并发修改问题
本帖最后由 「AτS」 于 2016-3-24 17:08 编辑
在List接口下的子类集合中,为了避免在迭代过程中用户对集合进行操作(并发修改),有一个特殊的迭代器-listIterator
但是在Set接口下,却没有类似的方法,那么如果发生并发修改,该怎么处理?
先用List特有的
listIterator,运行结果:
[aa, bb, cc, dd],加入了一个元素
ArrayList<String> al =new ArrayList<String>();
al.add("aa");
al.add("bb");
al.add("cc");
ListIterator<String> listit =al.listIterator();
while(listit.hasNext()){
String str =listit.next();
System.out.println(str);
if(str.equals("cc")){
listit.add("dd");
}
}
System.out.println(al);
复制代码
但是set接口的就不可以
HashSet<String> hs =new HashSet<String>();
hs.add("aaa");
hs.add("bbb");
hs.add("ccc");
Iterator<String> it =hs.iterator();
while (it.hasNext()){
System.out.println(it.next());
hs.add("ddd");
}
复制代码
作者:
「AτS」
时间:
2016-3-25 10:05
哪位大神可以解答一下吗?谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2