当前位置: 首页 > news >正文

网站上线如何做公司名字网络营销带来的效果

网站上线如何做公司名字,网络营销带来的效果,网站宣传的手段有哪些?(写出五种以上),石家庄营销网站建设多少钱ConcurrentModificationException并发修改异常 原因分析 可以通过遍历索引也可以通过迭代器进行遍历。在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对…

ConcurrentModificationException并发修改异常

原因分析

可以通过遍历索引也可以通过迭代器进行遍历。在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对象的remove方法是没问题的,但是当我们调用集合自带的remove方法时,就会产生ConcurrentModificationException 并发修改异常。也就是说,当我们通过非迭代器进行遍历集合的时候,是不允许集合本身在结构上发生变化的。
增删操作会导致 预期数量和 计数器的数量不一致,就会导致并发修改异常

解决方式

1,ListIterator列表迭代器(list特有的迭代器),将添加、删除元素交给迭代器去做,而非集合

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("B");
list.add("C");ListIterator<String> stringListIterator = list.listIterator();
while (stringListIterator.hasNext()) {String element = stringListIterator.next();if(StringUtils.equals(element,"C")) {// 在遍历时向列表中添加元素stringListIterator.add("D");}
}
System.out.println(list);//[A, B, B, C, D]

2,普通for循环删除时需要从后往前删除,因为从前往后删除可能会漏删(删除第一个B之后,索引到2,但是本来索引2的元素第二个B却来到了索引1的位置)

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("B");
list.add("C");for (int i = list.size()-1; i >= 0; i--) {if(StringUtils.equals(list.get(i),"B")) {list.remove("B");}
}System.out.println(list);

3,使用CopyOnWriteArrayList集合,底层解决并发修改异常,就可以使用集合的增删方法在遍历时操作

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("B");
list.add("C");CopyOnWriteArrayList<String> copyOnWriteArrayList = new CopyOnWriteArrayList(list);
for (String ele :copyOnWriteArrayList){if(StringUtils.equals(ele,"C")) {// 在遍历时向列表中添加元素copyOnWriteArrayList.add("D");}
}System.out.println(copyOnWriteArrayList);//[A, B, B, C, D]

4,当遍历时需要删除元素时,可以使用普通迭代器,普通迭代器没有新增方法

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("B");
list.add("C");
//普通迭代器,只能删除,没有add
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){String next = iterator.next();if(StringUtils.equals(next,"B")) {iterator.remove();//迭代器删除第一个B,然后hasNext拉到下一个B,迭代器再删除一次}
}
System.out.println(list);//[A, C]

5,增强for循环底层采用迭代器,遍历时删除(新增)只能用集合的删除(新增)方法,还会报并发修改异常

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("B");
list.add("C");for (String element : list) {//Caused by: java.util.ConcurrentModificationException: nullif(StringUtils.equals(element,"B")) {list.add("B");}
}
System.out.println(list);//[A, B, B, C, D]
http://www.dt0577.cn/news/16946.html

相关文章:

  • 网站开发简易软件搜云seo
  • 用python做 网站论坛百度广告联盟官网
  • 网站是如何做的好网站设计模板网站
  • 网站logo的颜色与网页的颜色百度搜索量统计
  • .net搭建企业网站靠谱seo外包定制
  • 网站建设系统教程热门网站
  • 域名打不开网站四川疫情最新情况
  • 做网站编辑应该注意什么广东最新消息
  • 怎么在自己的网站上做漂浮链接燕郊今日头条
  • 哪些在线网站可以做系统进化树单页网站
  • 做论坛app网站有哪些百度一下你就知道了主页
  • 知名网站制作公司有哪些软文广告投放平台
  • 网站策划与建设阶段的推广的目标湖州seo排名
  • 校园门户网站开发需求分析产品推广方式及推广计划
  • 上海的网站建设公司东莞seo网络培训
  • java网站项目可做优化课程
  • 网站源码做exe执行程序整站优化深圳
  • 肇庆疫情最新消息2021seo托管
  • qq推广网站百度学术论文查重官网
  • 学做网站卖东西去哪学网店网络营销策划方案
  • 东莞三合一网站建设俄罗斯引擎搜索
  • 好看的网站首页图片优化大师是什么软件
  • 做APP好还是建设网站好seo点击工具帮你火21星热情
  • 天津建设科技杂志的官方网站大连做优化网站哪家好
  • php做网站需要mysql么易推客app拉新平台
  • 响应式网站pad尺寸泰安百度公司代理商
  • 自己学做网站网站如何才能被百度收录
  • 青岛网站有限公司企业网站建设的重要性
  • 佛山有那几家做网站如何建造一个网站
  • 备案网站公共查询2024年最新时事新闻