1、首先想到循环就是执行效率的问题,参考博客http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html

2、

测试时候发现出现“  集合已修改 ; 可能无法执行枚举操作 ”的问题

查阅了一下发现for和foreach的一个算是蛮重要的区别

foreach是取只读的,在取的时候数据不 能变(包括修改,删除,添加等),因为在取之前foreach的集合已经定好了,

我们一旦执行增删改,相当于一边遍历一边往里加东西,遍历不明白了。

要避免这个问题,可以使用for循环去完成此功能,或者先copy要foreach的对象,对copy的对象进行遍历,然后remove对象本身,不过copy的方法有时候并不太好用,最好还是用for解决。

我做的是符合条件的remove,for时,i++,所以当移除某项后,下一项补上来了,因此要在符合条件的时候再来个i--,使得remove后,for循环继续执行补上来的下一项,如果只删除一项那就没必要i--操作。直接在删除后break;跳出循环即可。

foreach 和for语句比较的更多相关文章

  1. Java之Foreach语句

    Foreach是for语句的特殊简化版本,但任何时候的foreach语句都可以改写成for语句.Foreach语句在遍历数组等方面为程序员提供了很大的方便 语法如下: For(元素变量 x:遍历对象o ...

  2. C#基础知识---迭代器与Foreach语句

    一.Foreach语句简介 在C# 1.0中我们经常使用foreach来遍历一个集合中的元素,然而如果一个集合要支持使用foreach语句来进行遍历,这个集合一般需要IEnumerable或IEnum ...

  3. 3、C#基础整理(语句概述)

    语句 语句分为四个大类: * 分支语句:if,if... else,if ...else if... else,switch case * 循环语句:for,while,do while,foreac ...

  4. 20141013--判断语句(if ,else)

    目前为止,之前所学的程序只能一步步往下执行. 语句:判断,循环,形成程序分支和循环. 选择控制: if , else, switch, case 循环控制:white, do, for, foreac ...

  5. 关于java中for和foreach循环

    for循环中的循环条件中的变量只求一次值!具体看最后的图片 foreach语句是java5新增,在遍历数组.集合的时候,foreach拥有不错的性能. foreach是for语句的简化,但是forea ...

  6. 语句(语句分类及if语句)

    目前为止,之前学过的程序只能一句一句向下执行.C#:选择控制:if,else,switch,case循环控制:while,do,for,foreach跳转语句:break,continue异常处理:t ...

  7. C#图解教程 第九章 语句

    语句 什么是语句控制流语句if语句if-else语句while循环do循环for循环 for语句中变量的作用域初始化和迭代表达式中的多表达式 switch语句 分支示例switch语句补充分支标签 跳 ...

  8. Mybatis foreach标签含义

    背景 考虑以下场景: InfoTable(信息表): Name Gender Age Score 张三 男 21 90 李四 女 20 87 王五 男 22 92 赵六 女 19 94 孙七 女 23 ...

  9. 10-13C#语句(1)

    C#语句:判断.循环.形成程序的分支和循环 1.语句分类 1)顺序语句 2)分支语句 3)循环语句 2.语句 选择控制:if,else,switch,case 循环控制:while,do,for,fo ...

随机推荐

  1. 网络编程API-下 (I/O复用函数)

    IO复用是Linux中的IO模型之中的一个,IO复用就是进程预先告诉内核须要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理.从而不会在单个IO上堵塞了. Linu ...

  2. Lua多重继承

    http://blog.csdn.net/ssihc0/article/details/7742421 代码收藏了,以后用的到 --多重继承 local function search(k,plist ...

  3. 设置MySQL数据表主键

    设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...

  4. Sybase配置数据库参数

    Sybase配置数据库参数参数配置的两种方法:sp_configure ‘参数名称’,参数值修改参数文件(如:Sybase主机上的 %SYBASE%\servername.cfg) 配置Sybase数 ...

  5. 【SQL】大杂烩

    --------------------------------- 索引 --------------------------------- 语法: CREATE [索引类型] INDEX 索引名称 ...

  6. CSS的base文件常用代码

    article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,but ...

  7. js库开发--参数传递及方法修改

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  8. dojo.hasClass/dojo.addClass/dojo.removeClass/dojo.toggleClass/dojo.repalceClass

    dojo.hasClass(/*DomNode*/node or DomIdstring,/*String*/classString)//如果节点中有特定的类,那么返回ture,否则返回false d ...

  9. 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4503 思路:hint from a GOD-COW. 将每一个人模拟成图的一个点,两点连线当且仅当两人是朋 ...

  10. 纯css改变下拉列表select框的默认样式

    下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可. select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下* ...