精华内容
下载资源
问答
  • 本文将详细给大家关于C#中foreach循环对比for循环的优势劣势,下面话不多说了,来一起看看详细的介绍吧。 一、foreach循环的优势 C#支持foreach关键字,foreach在处理集合和数组相对于for存在以下几个优势: 1、...
  • 下面小编就为大家带来一篇老生常谈foreach(增强for循环)for的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • map、foreach和for循环区别

    千次阅读 2020-03-05 09:56:37
    一 、foreach和for循环区别 1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便 2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环...

    一 、foreach和for循环区别

    1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便

    2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。

    3.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。

    4.forEach相比普通的for循环的优势在于对稀疏数组的处理,会跳过数组中的空位
    二、数组中的forEach和map的区别
    大多数情况下,我们都要对数组进行遍历,然后经常用到的两个方法就是forEach和map方法。
    先来说说它们的共同点
    相同点
    都是循环遍历数组中的每一项
    forEach和map方法里每次执行匿名函数都支持3个参数,参数分别是item(当前每一项),index(索引值),arr(原数组)
    匿名函数中的this都是指向window
    只能遍历数组
    都不会改变原数组
    区别
    map方法
    1.map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
    2.map方法不会对空数组进行检测,map方法不会改变原始数组。
    3.浏览器支持:chrome、Safari1.5+、opera都支持,IE9+,

    array.map(function(item,index,arr){},thisValue)
    
    var arr = [0,2,4,6,8];
    var str = arr.map(function(item,index,arr){
        console.log(this); //window
        console.log("原数组arr:",arr); //注意这里执行5次
        return item/2;
    },this);
    console.log(str);//[0,1,2,3,4]
    

    若arr为空数组,则map方法返回的也是一个空数组。
    forEach方法
    1.forEach方法用来调用数组的每个元素,将元素传给回调函数
    2.forEach对于空数组是不会调用回调函数的。

    Array.forEach(function(item,index,arr){},this)
    var arr = [0,2,4,6,8];
    var sum = 0;
    var str = arr.forEach(function(item,index,arr){
        sum += item;
        console.log("sum的值为:",sum); //0 2 6 12 20
        console.log(this); //window
    },this)
    console.log(sum);//20
    console.log(str); //undefined
    

    无论arr是不是空数组,forEach返回的都是undefined。这个方法只是将数组中的每一项作为callback的参数执行一次。

    展开全文
  • foreach和for循环区别

    2021-10-12 11:21:32
    foreach语句是java5中的新增,在遍历数组,集合的时候性能比一般的for循环好一些。 foreachfor循环的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,反之则行不通。但是foreach并不能替代...

    foreach语句是java5中的新增,在遍历数组,集合的时候性能比一般的for循环好一些。

    foreach是for循环的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,反之则行不通。但是foreach并不能替代for循环。

    foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、数组等。

    foreach虽然能遍历数组或者集合,但是只能用来遍历,因为其省略了下标(index)所以无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对原来数组或者集合中的某个元素进行修改。

    展开全文
  • 标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为对象。自己试试 alert(typeof i);这个区别是小问题。现在我加上如下代码,上
  • js中foreach和for循环区别

    千次阅读 2020-07-06 22:32:18
    1、foreach 定义:foreach又叫做增强for...2、foreachfor循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。 3、实例: // for循环:可以修改循环语句 var a

    1、foreach

    定义:foreach又叫做增强for循环,相当于for循环的简化版,因此在一些较复杂的循环中不适用。
    结构:foreach(元素类型 元素名称:循环对象(数组、集合)){
    循环语句
    }
    特点:foreach在循环次数未知或者计算起来较复杂的情况下效率比for循环高。

    2、foreach与for循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。

    3、实例:

            // for循环:可以修改循环语句
            var array = ["a","b","c","d"];
            for (var i = 0; i < array.length; i ++) {
                array[i] = "A";
            };
            console.log(array);     // 结果:"A" "A" "A" "A"
            
    
            // foreach循环:不能修改循环语句
            var array2 =  ["a","b","c","d"];
            array2.forEach(function(item) {
                item = "A";
            });
            console.log(array2);    // 结果:["a","b","c","d"]
    
    展开全文
  • Java for循环和foreach循环区别

    千次阅读 2019-11-26 18:33:48
    3)foreachfor循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。 二、两者效率比较 对于通过下标访问的数据结构。例如数组,Arraylist 使用下标访问的for循环...

    一、区别
    1)for循环是基于下标(偏移量)来定位的循环。
    2)foreach是基于指针直接移动(地址运算)的循环。
    3)foreach与for循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。
    二、两者效率比较
    对于通过下标访问的数据结构。例如数组,Arraylist 使用下标访问的for循环效率本身就很高。所以foreach这种指针直接移动的效率可能甚至不如通过下标访问。但差别不会太大
    但对于链式结构LinkedList,for基于下标访问会每次从头查询,最好不要使用for。foreach循环使用指针直接偏移的高效的地址运算,效率会高非常多,差距也很大。链表循环超过10万次for循环可能会直接卡死,而foreach仍然只需要几毫秒。
    例:普通for循环

    package ch02;
    import java.util.Arrays;
    public class Test {
    	public static void main(String[] args) {
    		String[] str = {"a","b","c"};
    		for (int i = 0; i < str.length; i++) {
    			if(str[i]=="b") {
    				str[i]="d";
    			}
    		}
    		System.out.println(Arrays.toString(str));
    	}
    }
    //运行结果:[a, d, c]
    

    增强for循环:

    package ch02;
    
    import java.util.Arrays;
    import java.util.Iterator;
    public class Test {
    	public static void main(String[] args) {
    		String[] strs = {"a","b","c"};
    		for (String str : strs) {
    			if(str=="b") {
    				str="d";
    			}
    		}
    		System.out.println(Arrays.toString(strs));
    	}
    }
    //运行结果:[a, b, c]
    

    结论:需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。
    需要循环链表结构的数据时,一定不要使用普通for循环,数据量大的时候有可能会导致系统崩溃。

    展开全文
  • lamda中stream的forEachfor循环对比

    千次阅读 2021-04-15 09:57:27
    对比方式 将一个字符串数组进行输出的方式: 代码 public static void main(String[] args) throws IOException { int n=500000; String[] strings = new String[n];... Arrays.stream(strings).forEach(System
  • foreachfor循环的明显差别在于,foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。 // for循环:可以修改循环语句 var array = ["a","b","c","d"] for(var i = 0;i < ...
  • java中for循环和foreach循环区别与快慢

    千次阅读 2018-11-07 10:44:48
    for循环和foreach循环的区别与快慢: foreach请看:java的foreach循环 for循环是基于下标(偏移量)来定位的循环。 foreach是基于指针直接移动(地址运算)的循环。 对于通过下标访问的ArrayList。使用下标访问...
  • for循环和foreach循环的差别
  • for循环和foreach区别

    千次阅读 2018-12-01 22:36:44
    1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便 2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。 3.如果对...
  • C#中For循环和Foreach循环的区别

    热门讨论 2021-07-30 08:57:22
    相信大家都知道在我们写程序的时候会用到很多的循环语句,比如说whlie、do...whlie、for和foreach。这些循环语句使我们的工作效率得到...for循环先要把表达式1执行完之后在执行循环条件最后执行表达式2,表达式1只需...
  • for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成foreach循环。 下面简单介绍一下两种循环: 1.for循环 代码格式: for(表达式1;循环条件;表达式2) {...
  • foreach(增强for循环for的区别

    千次阅读 2020-07-07 17:02:02
    for里面可以做删除操作 ...foreach(增强for循环)里不可以做删除操作 for (String s : list) { if(s.equals("删除操作")) list.remove(s); } 会报java.util.ConcurrentModificationException ...
  • php中for循环和foreach区别如下: 1、for需要先知道数组长度再操作,foreach不需要 2、foreach效率比for高很多,主要原因是for要进行很多次条件判断,另外从数组变量的数据结构来看 foreach直接通过结构体中next指针...
  • PHP 中 foreach和for循环哪个效率更高

    千次阅读 2018-05-23 14:05:50
    今天看别人的代码,有段代码是对一个二维数组中的数据进行处理,那个作者用的是for循环,但是我感觉用 foreach 也可以。所以就想问问看在PHP中 for 循环 foreach 哪个更快。 for循环遍历(count在内部): $...
  • for循环和foreach循环的区别

    万次阅读 2017-11-17 12:23:47
    //定义一个list集合 List list=new ArrayList(); list.add("aaa");... * for循环遍历, * 依靠下标定位,int i的值即下标,查询的时候比较灵活, * 每循环一次就会调用一次getCount()来
  • for( )循环和forEach( )循环区别

    千次阅读 2018-04-12 13:37:08
    一:for( )循环通过下标,对循环中的代码反复执行,功能强大,可以通过index取得元素。在处理比较复杂的处理的时候较为方便。二:forEach( )循环forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。...
  • Java for循环和foreach循环的性能比较

    万次阅读 多人点赞 2016-09-30 16:48:41
    在公司codereview过程中,发现一个问题,就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了? 两种循环的语法格式: 普通for循环语法: for (int i =...
  • for (int i = 0; i < modelList.Count; i++) { ThirteenCalcInsuranceModel escCompanyData = haveThirteenData.FirstOrDefault(t => t.EmployeeNo == modelList[i].EmployeeNo && t....
  • Java中 for和foreach循环区别

    千次阅读 2017-02-20 11:49:23
    foreach语句是java5中新增,在遍历数组、集合的时候性能比一般for循环能好一些。 foreach是for语句的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,但是反之则行不通。但是foreach并不能替代...
  • js之forforEach循环区别

    千次阅读 2020-05-30 20:49:03
    首先,for循环在最开始执行循环的时候,会建立一个循环变量i,之后每次循环都是操作这个变量,也就是说它是对一个循环变量在重复的赋值,因此 i 在最后只会存储一个值; 而forEach()虽然变量名没变,但是实际上...
  • for 你先要给初值,末值步长 foreach 不需要事先给定初值,末值步长,他是自动遍历给定的集合体的所有值 string[] a=new string[]{"a","b"} for(i=0;i<a.length;i++) { Response.write(a[i].ToString()) }...
  • foreach 依赖IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, ...直到循环结束. 期间GetList()方法只执行一次. foreach (var a in GetList()) { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,404
精华内容 60,161
关键字:

foreach和for循环区别