foreach遍历循坏 有什么作用?

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

0

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);
        }

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

2

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

0

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

0

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

0

for效率高于foreach

0

foreach中运用了集合迭代器iterator

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用foreach和section遍历数组内容
1.Foreach 语法 要遍历的数组 item=当前指针指向的数组元素的值 key=当前元素的键值 name=当前循环的名称}> 语句 语句2 2.利用section遍历数组 *不能遍历关联数组 3. 条件}>语句1 条件2}>语句2 语句3 .
使用小程序中for循坏发现的问题
wx:for 某次使用wx:for过程中 命名后台返回来的是5,发现只渲染了1次…… wx:for='{{personInfo.groups}}'//发现返回的groups为'5',字符串类型 wx:for='{{personInfo.groups-0}}'//与数字类型进行运算结果为数字类型,或者后台更改...
关于在在foreach循环中移除集合中的元素的解决方案
在集合中移除或者添加元素 https://stackoverflow.com/questions/10431981/remove-elements-from-collection-while-iterating    这是大致思路: AFAIK, there are two approaches: Iterate over a copy of the col
小程序的for循坏
1,wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 事例如下: wxml文件: {{index}}: {{item:one}} js文件: Page({ items:[{ one: "test1", },{ one: "test2"
AS3解疑:三种 for 循环的效率
AS3 提供了三种循环 for、forin、foreachin,这里测试一下三种方式的效率问题。 测试数据是一个 1000W 字符串的 Array,循环 push 到新的 Array 中。唯一不同的就是for的方式。为了防止GC造成的影响,每次输出后都会强制GC一次。 ================================================ for (var i ...
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); }}
<c:forEach>标签关联集合循环嵌套问题
最近,在项目中用到标签在jsp页面做信息展示,关于各种属性意义这里就不多说了,这里介绍一下我遇到的循环嵌套问题。
foreach循环及Map遍历
import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Test; //增强for循环 public class
双重forEach循环遍历出所有信息,且拥有此信息的话在复选框上打勾
//传一个拥有的数量 &amp;lt;c:set var=&quot;size&quot; value=&quot;${size}&quot;/&amp;gt; //所有设备的信息 &amp;lt;c:forEach items=&quot;${equipment_info}&quot; varStatus=&quot;status&quot; var=&quot;u&quot;&amp;gt; //设置一个continue值 &amp;lt;c:set var=&quot;Continue
foreach的缺点与优点
foreach有两个缺点:   1、不能同时遍历多个集合   2、在遍历的时候无法修改和删除集合数据 优点: 1、遍历的时候更加简洁(特别是遍历Map集合的时候 2、效率和for循环相同 3、不用关心集合下标的问题。减少了出错的概率。 import java.util.ArrayList; import java.util.Arrays; import java.util.List...
jq获取tr中td的值(forEach遍历)
&amp;lt;table border=&quot;1&quot;&amp;gt;        &amp;lt;tr&amp;gt;            &amp;lt;td&amp;gt;编号&amp;lt;/td&amp;gt;            &amp;lt;td&amp;gt;id&amp;lt;/td&amp;gt;            &amp;lt;td&amp;gt;usrName&amp;lt;/td&amp;gt;            &amp;lt;td&amp;gt;
jsp页面forEach循环时实现序号的自增
&amp;lt;c:forEach items=&quot;${page.list}&quot; var=&quot;position&quot; varStatus=&quot;s&quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;${s.count}&amp;lt;/td&amp;gt;  在forEach标签添加 varStatus = &quot;s&quot;属性, 在遍历时,取${s.count} 即可取得其递增的序号.
Jsp如何用foreach嵌套双重循环
例如用户去查询自己的订单得到一个orderlist,每一个订单(order)对应一个商品的goodlist,如果用户(user_id)去查询已买到的商品,在jsp里如何用servlet返回的orderlist和goodlist查询。如同淘宝先forEach所有订单,订单里forEach里面的所有商品。 参照如下: List&amp;lt;Order&amp;gt; orderlist =orderdao.f...
laravel中的数据循环输出
@foreach($sorts as $key=>$sort) @if ($key%2 == 0) class="reacting" href="" >img src="{{$sort -> thumb or /images/type/type_no.png}}" alt=""/>{{ $sort -> name }} @else o
C# - 在foreach中删除元素
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在foreach中删除
checkbox的循环遍历和checked属性
.aspx代码如下: CheckBox应用 <asp:CheckBox ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" Text="测试" AutoPostBack=
遍历list的几种方式
遍历list的几种方式
在foreach循环中对list结构进行添加或删除
在循环中对list进行添加或删除操作,会抛出currentModifierException,因为在循环过程中动态的加入或删除list元素会导致list的元素数量改变,出现漏项或者无限循环等现象。 ·如果要在foreach循环中删除list中的元素,要使用itrator迭代器,借助itrator的remove方法删除元素,若使用list的remove方法则会抛出异常 ·如果要在foreach循
Qt容器(QMap/QHash etc)遍历
Qt 的容器类提供了两种风格的遍历器:Java 风格和 STL 风格。 Java 风格的遍历器 Java 风格的遍历器是在 Qt4 首先引入的,是 Qt 应用程序首先推荐使用的形式。这种风格比起 STL 风格的遍历器更方便。方便的代价就是不如后者高效。 Java 风格的遍历器指向的是两个元素之间的位置,而不是指向元素本身。因此,它们可能会指向集合第一个元素之前的位置,也可能指
php foreach循环 引用的时候的坑
前两天写递归的时候用到了 静态变量  引用  全局变量 用引用的时候出现了 一点意外  网上查资料 发现一个很好的例子来诠释 据说是金山的面试题 $a = array('a','b','c');   foreach($a as &$v){}      foreach($a as $v){      }   var_dump($a);   答案一般人肯定知道不
DataList控件遍历。
在ASP.NET中,有时需要对DataList内各控件进行遍历取值,可以使用下面方式进行遍历。 foreach(DataListItem item in DataList1.Items) { string labName = ((Label)item.FindControl("labId")).Text.ToString();
java 为什么遍历的时候不能删除元素
阿里巴巴java开发手册的建议在看阿里巴巴java开发手册时,有一条建议是这样的。 【强制】不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 反例: List<String> a = new ArrayList<String>(); for (String temp : a) {
Map集合循环遍历的几种方式
package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /**  * Map 集合的循环遍历  * @data 2018.1.21  *  */ public class TestMap {        ...
thymeleaf显示表格,for循环
&amp;lt;table border=&quot;1&quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;用户名&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;邮箱&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;状态变量:index&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;状态变量:count&
php中foreach遍历类对象的总结
foreach 遍历数组很常见,同样foreachye'ke
你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景
本文参考资料基于JDK1.8,理论上也适用于之前的版本.严格的说,for-each是对for的增强,本质上也属于for循环.for和for-each一般无非也就是如下三种用法,其中第三种也就是我们平时所说的for-each://其中list为java.util.List类型//第一种写法 for (int i=0, n=list.size(); i < n; i++){ list.get(i
如何在foreach中删除一个集合中的元素
如何在foreach中删除一个集合中的元素,其实很简单,只用一个递归就可以了,例如下面的一个代码判断一个listbox里面的items都是checkbox其中被选中的全部都删除 void removef() { foreach (CheckBox item in lst.Items) { i
jQuery中each的用法 退出循环和结束本次循环
jQuery中each类似于javascript的for循环  但不同于for循环的是在each里面不能使用break结束循环,也不能使用continue来结束本次循环,想要实现类似的功能就只能用return, break           用return false continue      用return ture
foreach循环中为什么不要进行remove/add操作
先来看一段代码,摘自阿里巴巴的java开发手册1 List&amp;lt;String&amp;gt; a = new ArrayList&amp;lt;String&amp;gt;(); 2 a.add(&quot;1&quot;); 3 a.add(&quot;2&quot;); 4 for (String temp : a) { 5 if(&quot;1&quot;.equals(temp)){ 6 a.remove(temp); 7 } 8 }...
foreach 和 for 循环的区别
1.如果只是遍历集合或者数组,用foreach好些,快些。 2.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。
JS中对象的循环删除问题
业务说明:对页面元素名称为subCheck的所有元素循环删除。 错误代码如下: var eles=document.getElementsByName("subCheck"); for(var =1,i var ele=eles[i]; $(ele).remove(); } 针对以上代码,若eles的长度为4的话,实际情况只能删掉2个。这是因为JS在删掉一个元素的同时,将eles集合
JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。
JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。1、for循环遍历list for(int i=0;i&amp;lt;list.size();i++){  if(list.get(i).equals(&quot;del&quot;))    list.remove(i);}这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,...
foreach 循环不能改变集合中各项的值
[code=&quot;java&quot;] import java.util.ArrayList; import java.util.List; public class foclass4 { /** * @param args */ public static void main(String[] args) { List lists = new ArrayList(); ...
foreach控制循环if判断
resultMap类型为<c:forEach items="${resultMap}" var="daily" varStatus="n"> <tr class="<c:choose><c:when test="${n.index % 2==0 }">row-even</c:when><c:otherwise>row-odd</c:otherwise>
不要在 foreach 循环里进行元素的 remove/add 操作
【强制】不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。 反例: List a = new ArrayList();  a.add("1");   a.add("2");  for (String temp : a) { if("2".equals(temp)){
浅谈for,for-in,forEach,for-of几种循环
今天主要来给大家说一下for的几种循环,仅代表个人的想法与观点,欢迎各位大神批评。 for循环主要有以下几种:      1.一般的for循环      2.for-in循环      3.forEach循环      4.for-of循环 一.首先是普通的for循环,例如:var arr = ["a","b","c
Jstl的foreach循环中用el表达式输出集合
今天遇到一个问题,就是从后台传递来两个集合,这两个集合关系就是文章信息列表输出和文章封面图片输出,由于我的文章封面图片并不是用文章表进行管理,而是单独用图片表进行管理,所以我就把文章信息存到A集合,所有图片路径存到B集合。现在就是我用JSTL的foreach循环输出A集合,在A集合嵌套输出B集合,这时候不能在写一个循环输出文章封面图片。以下是我要的效果图: 解决方法:JSTL的foreach 中添
php foreach正序倒序输出
// 正序 foreach($files as $file_num =&amp;gt; $file) { if(is_file($directory.$file)){ //$file = iconv(&quot;gb2312&quot;,&quot;UTF-8&quot;,$file); //或者 iconv(&quot;gb2312&quot;,&quot;UTF-8&quot;,$value); $date = substr($file,0,9); e...
Java高级特性之增强for循环(一)
前言 写道 for/in循环就是JDK5.0中所谓的增强For循环,它能对数组和集合进行遍历,使用它会使用你的代码短小而精炼的多。这里将介绍以下内容: 传统的for循环和增强for循环的比较 定制自己的增强for循环 增强for循环的局限性 一:传统的for循环和增强for循环的比较 //传统的数组遍历 String[] persons={"张三","
在jsp中已经获取到list了,但为什么foreach循环中一直没有显示
原因在于没有引入c标签。。。。。。。。只把jsp代码抄过来了。。。。。。。。。 加上这个就好了
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 物联网应该培训什么作用 云计算有什么课程