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

天河公司网站建设网络营销的基本职能

天河公司网站建设,网络营销的基本职能,温州模板建站代理,做百科网站在编写代码的时候,有时候会遇到List里有符合条件的的对象,就移除改对象! 但是这种操作如:使用了 List 的remove,会导致一些很严重的问题! 如下这段代码使用ArrayList: Testpublic void testR…

在编写代码的时候,有时候会遇到List里有符合条件的的对象,就移除改对象!
但是这种操作如:使用了 List 的remove,会导致一些很严重的问题!
如下这段代码使用ArrayList:

@Testpublic void testRemoveList(){List<String> list = new ArrayList<String>();list.add("A");list.add("B");list.add("C");list.add("D");list.add("E");for (String string : list) {System.out.println(string);if("C".equals(string)){list.remove(string);}}}

程序运行,报错!!!

java.util.ConcurrentModificationExceptionat java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)at java.util.ArrayList$Itr.next(ArrayList.java:831)at com.test.common.TestCommon.testRemoveList(TestCommon.java:318)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

这里写图片描述

千万要记住,不要在循环集合的时候去操作集合的长度!!!!
千万要记住,不要在循环集合的时候去操作集合的长度!!!!
千万要记住,不要在循环集合的时候去操作集合的长度!!!!

这里在小小的说一下,foreach 这个循环,它的原理底层实现其实是
使用了 Iterator!

解决方法,
(1)使用一个临时的集合,如下代码:

@Testpublic void testRemoveList(){try {//如果是不重要的业务代码。可以加上try-catch 不要影响主流程的进行List<String> list = new ArrayList<String>();list.add("A");list.add("B");list.add("C");list.add("D");list.add("E");if(list.size() > 0){//循环List一定去判断 非null  和  List-size() > 0List<String> templist = new ArrayList<String>();for (String string : list) {System.out.println(string);if(!"C".equals(string)){templist.add(string);}}System.out.println(templist.toString());}} catch (Exception e) {e.printStackTrace();}}

总结,其实这个是一个fail-fast 机制

fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。
例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。

(2)使用 CopyOnWriteArrayList ,在java.util.concurrent包下,多线程的时候使用,线程安全的!
将上面代码中的ArrayList换成CopyOnWirteArrayList也不会报错!

参考资料:
fail-fast 机制:http://www.cnblogs.com/skywang12345/p/3308762.html

Java中如何删除一个集合中的多个元素:http://www.importnew.com/20959.html


不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

http://www.lbrq.cn/news/2476837.html

相关文章:

  • 低成本网站制作中国万网
  • 集团公司网站建设搜索引擎优化seo培训
  • 博罗做网站公司线上如何推广自己的产品
  • 如何建立一个网站查询数据seo搜索引擎优化服务
  • 天津塘沽网站建设杭州网站优化效果
  • 找人做的网站推广被坑推广网站排名优化seo教程
  • 廊坊网站群发关键词seo关键词分析
  • 贵阳手机网站开发重庆seo技术教程
  • 网站做sem能够提高收录量吗泉州关键词优化报价
  • 网站banner图片制作如何做公司网站推广
  • 长春建网站公司厦门seo培训
  • 网站设计销售好做吗seo技巧
  • 香港特区政府网站 建设qq群推广引流免费网站
  • 网站备案要收费吗广州百度提升优化
  • 北京网站搭建报价推广软件app
  • 大型网站服务器架构seo站长工具
  • wordpress资讯站模板注册公司网站
  • 阿里巴巴做网站教程sem数据分析
  • 百度收录个人网站是什么怎么做sem和seo是什么
  • 网站在百度的图标显示不正常显示搜索引擎优化工作
  • 有哪些外国网站做精油的网站模板哪家好
  • 做本地网站需要什么资质网络广告投放网站
  • 网站 如何做后台维护上海高端网站定制
  • wordpress做的网站吗上海网络公司seo
  • 设计宝藏资源站目前最新的营销方式有哪些
  • 网站建设基地百度广告搜索引擎
  • 什么网站可以做项目百度推广费用怎么算
  • 官方网站建设审批手续成都疫情最新情况
  • 网站seo推广软件百家号优化
  • 上海物流网站怎么建设如何制作网页最简单的方法
  • 【408二轮强化】数据结构——线性表
  • 根本是什么
  • Linux权限机制:RUID/EUID/SUID与进程安全
  • Linux应用开发基础知识——进程学习2(exec函数、system函数、popen函数)(三)
  • 斐波那契数列策略
  • PAT 甲级题目讲解:1003《Emergency》