foreach遍历循坏 有什么作用?

如题。for循坏和for增强版循坏有区别吗?如果有区别是什么?

6个回答

增强for循环是Java1.5以后提出的一种新的循环方式。
语法是编译器认可的,而不是JVM认可的,其本质是利用迭代器遍历集合或数组,也就是说在编译期间会转换为迭代器遍历的形式,例如

        Collection<String> c = new ArrayList<String>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        for(Object o:c){
            System.out.println(o);
        }

在编译期间会转换为如下代码

        Collection<String> c = new ArrayList<String>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        Iterator it = c.iterator();//获取迭代器
        while(it.hasNext()){
            Object o = it.next();
            System.out.println(o);
        }

优点就是简洁,缺点是无法得到循环变量(也就是得到下标)
要注意使用时不能在循环中修改元素的数量,否则会抛出异常。

http://www.360doc.com/content/15/0814/12/14359545_491569282.shtml
这个里面说的很详细 去看看吧 对你有帮助

简单说一下.
foreach是for的简化版本.
目的是把所有能实现迭代的数据结构都有编译器或者解释器自动解析成可以循环的对象.
在循环体中直接用循环变量取出进行操作.
所有可迭代的对象都可以被foreach出来. 比如数组, 列表, 集合等等.
for只能使用在有序的普通变量上, 比如整数, 字符类型等.

正好看到这个问题感觉蛮有意思的

for效率高于foreach

foreach中运用了集合迭代器iterator

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++循坏语句
这是关于C++基础知识循环语句的PPT文档,主要是教学C++
for循坏嵌套问题
#includernvoid main()rnrn for(int i=5;i>=1;i--)rn rn for(int j(1);j<=i;j++)rn cout<<'&';rn for(j=1;j<=5-i;j++)rn cout<<'?';rn cout<
for循坏问题
程序如下:rn#includernvoid main()rnrn int i,j;rn for(i=1;i<=4;i++)rn rn for(j=1;j=1;i--)rn rn cout<<' ';rn for(j=1;j
小程序的for循坏
1,wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 事例如下: wxml文件: {{index}}: {{item:one}} js文件: Page({ items:[{ one: "test1", },{ one: "test2"
for循坏1到100的和
public class TestDemo { public static void main(String[] args) { int sum=0; for(int i=1;i&amp;lt;=100;i++){ sum=sum+i; } System.out.println(sum); }}
存储过程循坏
存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程
递归和循坏的区别
使用场景 需要重复的多次计算相同的子问题,通常可以使用递归或者循环。递归是在一个函数内部调用自身(终止条件),循环是通过设置计算的初始值以及终止条件。 优劣对比 递归优点:代码整洁,简单易懂。譬如树的前序遍历、中序遍历、后序遍历等用递归实现起来很简单,但是用循环实现相对较复杂。 递归缺点: 1. 时间效率低。函数调用时,需要在线程栈中分配空间保存参数、临时变量、返回地址等,而往栈中
条件和循坏
条件语句 # y = |x| if x &lt; 0: y = -x else: y = x 在条件语句后面加上 冒号: python不支持switch语句,但是支持elif if condition_1: statement_1 elif condition_2: statement_2 ... elif condition_i: statement_...
循坏应用一
通过以下两个例子来感受循坏的应用及循环的嵌套,尤其是第二个,掌握第二个例子就能很好的理解for 循坏的应用 //输出九九乘法表 #include  int main() { int i=0; for(i=1; i { int  j=0; for(j=1; j { printf("%d*%d=%-3d",i,j,i*j); } printf("\n"); } retur
在foreach循环中preg_match_all
[code=PHP]rn'images/news/waiguan/art_1250262268_8899.jpg',rn 1=>'images/news/waiguan/art_1250262285_9999.jpg'rn);rnforeach($array as $value)rnrn preg_match_all('/art.*jpg/i',$value, $name);rn $img = $name[0][0];rn echo $img;rn echo " ";rn ......rnrn...rn?>rn//----需求是我想把上面一长串的字符串里的图片名给提取出来,但是报错说:preg_match_all() expects parameter 2 to be string, array given in ...rn//----自我觉得并没写错,因为我前边儿也这样用的。rn//----请各位看看,这应该是哪里的问题,感谢。rn[/code]rnrn
java8 之 forEach遍历 (遍历)
** * * @Author : Wukn * @Date : 2018/6/7 * * java8 List forEach */ public class ListTest { public static void main(String[] args) { forEach03(); } public static void fo...
PHP循坏语句问题!
我连接数据库,根据关键字段搜索数据库内容,然后在网页中显示。rn满足条件的信息有些在两条以上,不过它们每行显示的内容都一模一样,怎么让它显示不同行就不同的数据??rn代码如下:rn[code=PHP]rn";rn echo "alert('Please enter a query of the user's mailbox');";rn echo "location.href=\"check.php\";";rn echo "";rnrnelsernrn $sql="select * from A where Email='$_POST[buyeremail]'";rn $res=mysql_query($sql);rnrn if(mysql_num_rows($res)>0)rn rn $num = mysql_num_rows($res);rn $row=mysql_fetch_array($res);rn?>rn rn rn RecordNumnerrn UserIdrn Fullnamern Emailrn Addressrn ItemTitlern rn rn ".$row['RecordNumber']."";rn echo " ".$row['UserId']."";rn echo " ".$row['Fullname']."";rn echo " ".$row['Email']."";rn echo " ".$row['BuyerAddress']." ".$row['BuyerTownOrCity']." ".$row['BuyerCounty']." ".$row['BuyerPostcode']." ".$row['BuyerCountry']."";rn echo " ".$row['ItemTitle']."";rn rn?>rnrnSorry, there is no such person information";rn rnrn?>rn[/code]rnrnA表的字段有:RecordNumber,UserId,Fullname,Email,BuyerAddress,ItemTitlernrn数据库中满足这个条件的记录有三条,其中前面五个字段的信息都一样的,就是最后的那个ItemTitle是不一样的
求助vb循坏语句
“"e:\1.dat” 文件大致格式是“ 1 2.2 3.33 4.444”,想要调取“1”,循环从第一个空格开始调,如果调出的是空格,则往后顺延一位,直到调出的不是空格,而是“1”。由于是vb初学者,循环语句还没有学好,下面是自己搞出的程序,运行一直都是空白,求大侠们指点。rnrn[code=vb]Private Sub Command1_Click()rn Dim lngFn As Long, strT As Stringrn lngFn = FreeFilern Open "e:\1.dat" For Binary As #lngFnrn strT = Space(LOF(lngFn))rn Get #1, , strTrn Close #lngFnrn Dim a As Longrn sArr = Split(strT, vbCrLf)rn a = 1rn txt1.Text = Split(sArr(0), " ")(a)rn For a = 1 To 6rn If (txt1.Text = "") Thenrn End Ifrn Next arnEnd Sub[/code]rn
循坏赛日程表(分治)
n=2……k个运动员要进行网球循坏赛。现要设计一个满足以下要求的比赛日程表: 1)每个选手必须与其他n-1个选手各赛一次; 2)每个选手一天只能赛一次; 3)循环赛一共进行n-1天。 #include #include using namespace std; int a[501][501]; int k;//选手数一共2^n个 void table() { int n=1
第五章 循坏结构程序设计
第五章 循坏结构程序设计 例5.1求1+2+3+…+100的和。 例5.2 用do…while语句求1+2+3+4…+100的和。 例5.3while和do…while循坏的比较。 例5.4 在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。 例5.5 要求输出100~200之间的不能被3整除的数。 例5.6输出以下4*5矩阵。 例5.7用...
for多层循坏跳到外层循环
package com.loop; public class LoopTest { /** * @param args */ public static void main(String[] args) { outer:for(int i = 0; i < 10; i++) { System.out.println(i); for(int j = 0; j
急~while循坏问题
create table tb (id int , pid int , name nvarchar(20)) rninsert into tb values(1 , 0 , '食品')rninsert into tb values(2 , 1 , '水果')rninsert into tb values(3 , 1 , '蔬菜')rninsert into tb values(4 , 2 , '香蕉')rninsert into tb values(5 , 2 , '苹果')rninsert into tb values(6 , 3 , '青菜')rngornrn--查询各节点的父路径函数rncreate function f_pid(@id int) returns varchar(100)rnasrnbeginrn declare @re_str as varchar(100)rn set @re_str = ''rn select @re_str = name from tb where id = @idrn [u][color=#FF0000]while exists (select 1 from tb where id = @id and pid <> 0)rn beginrn select @id = b.id , @re_str = b.name + ',' + @re_str from tb a , tb b where a.id = @id and a.pid = b.idrn endrn return @re_str[/color][/u]endrngornrnselect * , dbo.f_pid(id) 路径 from tb order by idrn谢谢啦rnrn
python(day)—循坏和判断
文章目录条件语句 条件语句 Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句…… elif 判断条件: 执行语句 else: 执行语句…… ...
while循坏1到100的和
-
在forEach循环中嵌套异步操作
需求:在forEach中对item的值进行异步操作,在最后一个item执行完毕执行下一步的操作 首先forEach中能否通过promise来控制每一步异步 [].forEach(async (item, index, arr) =&amp;gt; { let result = await this.asFun() }) asFun函数返回的是个promise function asFu...
mybatis的foreach的index到底有什么作用
mybatis的foreach的index到底有什么作用,看了网上一大堆也没搞明白他的具体作用
foreach与ienumrerator实现遍历有何区别?
rt
forEach遍历按钮绑定事件
通过C标签forEach迭代出来的按钮等都需要绑定唯一id(代码中acid) jsp: onclick=&quot;AddTogo(${activity.acid});&quot; &amp;lt;c:forEach items=&quot;${activitylist}&quot; var=&quot;activity&quot;&amp;gt; &amp;lt;c:if test=&quot;${activity.stdid!=sessionScope.student.stdid}...
map和foreach遍历的区别
1、map速度比foreach快2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,3、map因为返回数组所以可以链式操作,foreach不能。var ary = [12,23,24,42,1]; var res = ary.forEach(function (item,index,input) { input[index] = item*10; }) conso
集合遍历:for VS foreach
假设我们拥有下面的集合 1System.Collections.ArrayListlist=newSystem.Collections.ArrayList();2list.Add(1);3list.Add(12);4list.Add(3);5list.Add(56); 现在我们要遍历这个集合,我们有两套方案 1、我们用for遍历 1inttmp=0;2for(inti=1;i&amp;lt;...
使用foreach遍历三维数组
由于PHP是弱类型语言,数组相对其它语言较为灵活;PHP的数组不必强制规定其类型和长度,所以语法中专门提供了foreach来遍历数组;
foreach遍历两层数组
public class test1 { /** * @param args */ public static void main(String[] args) { int [][] i=new int[][]{{1,2},{3,4},{5}}; for(int [] j:i){ for(int k:j) System.out.println(k);         //F
使用foreach遍历二维数组
public class examaple4 { public static void main(String[]args){ int arr[][]={{1,2},{3,4}}; //定义二维数组 int i=0; //外层循环计数器变量 for(int x[]:arr){ ...
foreach遍历问题
foreach (Control control in this.panel1)rnrn //其他应用代码rnrnrnforeach (Control control in this.groupbox1)rnrn //其他应用代码rnrn为什么这两句会报一个错误rn错误 1 “System.Windows.Forms.Panel”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“System.Windows.Forms.Panel”类型的变量 rn错误 1 “System.Windows.Forms.GroupBox”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“System.Windows.Forms.GroupBox”类型的变量 rn是什么原因?rn以前写过这样的一个函数,现在一下子怎么也想不起来了。
foreach怎样逆向遍历?
foreach (string sss in stringInfo)rnrn string sss = s;rn...rnrnrn一般来说foreach是正向遍历,但我怎么从数组的最后一个开始逆向遍历呢?
foreach遍历集合
<p>rn <br />rn</p>rn<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价7016元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<span>&nbsp;</span> rn<p>rn <br />rn</p>rn针对企业开发的主流框架进行讲解,注重理论和实践的结合,课程内容深入源码,讲解深入浅出,每个技术点都配备具有典型性和实用性的案例及代码。使学生具备开发企业级项目的能力,同时针对框架新特性也有讲授,通过这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅性。
foreach的遍历问题
请问大家这样不可以实现对页面的 textBox的遍历吗?rnforeach(System.Web.UI.Control con in this.Controls)rn rn rn if(con is System.Web.UI.WebControls.TextBox)rn rn System.Web.UI.WebControls.TextBox tb=(System.Web.UI.WebControls.TextBox)con;rn tb.Text="nihao";rn rnrn
foreach 遍历object数组
rn[code=C#]rn//get excel A1 ~ A26 cells' datarnExcel.Range ColumnOne = xlsworksheet.get_Range("A1","A5");rnrnforeach (object element in ColumnOne.Value2)rnrn // I wanna do something herernrnrnError:rnforeach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator'rn[/code]rnColumnOne.Value2的定义及数值 rnValue2 object[1..5, 1..1] rnrn[1,1]= nullrn[2,1]= Hellorn[3,1] = nullrn[4,1] = 123rn[5,1] = 1.224rnrnforeach 如何遍历这个数组?rn
Foreach遍历与可变参数
foreach遍历于可变参数 foreach遍历 foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和集合对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。语法: /** * 语法: for(元素类型 临时变量名:遍历对象){ 引用了临时变量的语句(临时变量存入的是遍历对象中的元素,而非元素对应的下标) } */ // for...
PHP数组定义,foreach遍历
在php的函数中定义参数为数组,需要注意一下两点。 注意; 1.如果要求传入的参数必须为数组,则函数参数接收时强制声明:array $myArr 2.如果要求传入可为数组,也可为单一数据,则可以声明:$myArr 接下来说数组的定义,以及遍历: 一、数组声明 <?php header("Content-type:text/html;charset=utf-8"); /
foreach遍历checkbox取值
foreach从数据库获取的数据在前台显示,用checkbox,怎么将选中的checkbox的值获取并提交,还没有学框架,请讲的浅显一点rnrn```rn rn rn $status.index+1rn $point.point_name rn $point.point_contentrn rn ”rn```rnrn
foreach遍历特性
自动从小到大的顺序开始遍历,应用:删除最近10次备份之前产生的备份文件夹,代码见下: static void Main(string[] args)         {             DirectoryControl dir = new DirectoryControl();             System.Windows.Forms.MessageBox.Show("开始
foreach 遍历二维数组
public static void main(String[] args){ // foreach 遍历二维数组 int [][]nums={{1,2,3},{4,5,6},{7,8,9}}; for(int[]i:nums){ for(int j:i){ System.out.print(j...
instanceof有什么作用
用来判断引用类型的变量所指向的对象是否是一个类(或者接口,抽象类,父类)的实例 常用的方法是:result=object instanceof classname.如果Object是class的一个实例,那么instanceof运算符返回为true,不是(或者Object为null),那么结果返回false 输出结果为 true true false...
P3P有什么作用?
在我的项目中有个P3P文件夹,里面有两个XML文件,rnpolicy.xml和policy_references.xmlrn我不知道这两个文件是做什么的,rn上网搜了一下,发现有些说法是rnP3P是解决跨域问题的,有的说是共享cookie的,rn而且在项目中写cookie的时候rn首先写的就是一些p3p的东西,rnRequest.AddHeader("P3P", "CP=\"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR\"");rn那些东西就跟乱码似的,根本看不懂。rnP3P到底是做什么的?rn怎么个共享cookie法?rn有知道的说一下啊!!!rn谢谢!!!
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法