for循环

简单的反射实例以及for循环和foreach差别

人盡茶涼 提交于 2019-12-09 05:37:43
重点:1.反射判断值类型 2.关于for循环和foreach的区别 for循环可以修改循环中元素属性,而foreach不能,更不能对集合进行add和delete,原因是collection中返回的IEmumator设置其元素为只读属性,所以即使元素是int值类型也不能修改。这时最好使用for循环 来源: CSDN 作者: ID_Dexter 链接: https://blog.csdn.net/ID_Dexter/article/details/80450739

for循环与foreach的区别

陌路散爱 提交于 2019-12-09 05:37:08
首先说一下foreach有的也叫增强for循环,foreach其实是for循环的一个特殊简化版。 再说一下foreach的书写格式: for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){ 语句 } foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。 举个例子 :   public static void main(String[] args) { List arr = new ArrayList(); arr.add(“你好”); arr.add(“我好”); //foreach循环 for(String str : arr){   //这里的str就是为了获取每次循环的arr中的值 System.out.println(str);     //就相当于 String str=arr[i] } } 用for循环的话就会麻烦很多 复制代码 public static void main(String[] args) { List arr = new ArrayList(); arr.add(“你好”); arr.add(“我好”); //for循环 for(int i=0;i<arr.size()

深入 foreach 和 for 循环的区别

走远了吗. 提交于 2019-12-09 05:36:53
foreach 依赖 IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. <span style="font-size:18px;">foreach (var a in GetList()) { ... } = var a; IEnumerator e = GetList().GetEnumerator(); while (e.MoveNext) { a = e.Current; }</span> for 循环靠下标定位. list[3] 相当于 *(list + 3). <span style="font-size:18px;">for(int i = 0; i < GetCount(); i++) {   .... } = int i = 0; while(i < GetCount()) {   ... }</span> for 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList(). 结论. 在固定长度或长度不需要计算的时候for循环效率高于foreach. 在不确定长度

c# foreach 和for循环比较

*爱你&永不变心* 提交于 2019-12-09 05:36:32
循环语句是编程的基本语句,在C#中除了沿用C语言的循环语句外,还提供了foreach语句来实现循环。那么我要说的就是,在循环操作中尽量使用foreach语句来实现。 为了来更好地说明为什么要提倡使用foreach,用如下三种不同方式来编写循环语句。 int[] nArray = new int[100]; // Use "foreach" to loop array foreach( int i in nArray ) Debug.WriteLine( i.ToString() ); // Use "for" to loop array for( int i = 0; i < nArray.Length; i++ ) Debug.WriteLine( nArray[i].ToString() ); // Another way using "for" to loop array int nLength = nArray.Length; for( int i = 0; i < nLength; i++ ) Debug.WriteLine( nArray[i].ToString() ); 很明显,foreach语句很简洁,但是它的优点不仅仅在于此,它的效率也是最高的。可能很多人认为最后一种的效率会更高,因为表面上看着不用每次访问引用类型的属性。可是它却是三者当中,效率最低的。因为C

for循环和foreach的区别

Deadly 提交于 2019-12-09 05:36:16
1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便 2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。 3.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。 4.forEach相比普通的for循环的优势在于对稀疏数组的处理,会跳过数组中的空位。 来源: CSDN 作者: 扶公瑾以苏 链接: https://blog.csdn.net/qq_36470686/article/details/84679312

JavaScript的for循环写法及效率

让人想犯罪 __ 提交于 2019-12-09 05:04:39
欢迎访文我的博客 YangChen’s Blog for循环,再常用不过了。但是这回说下for循环是因为看代码时我居然没有看明白一个for循环的意思,真是不应该啊。这个for循环是这么写的: for ( var i = 0 , rule; rule = rules[i++];) { //do something } 这个写法是什么意思呢?后面再说,现卖个关子,这个写法我感觉还是挺好的。 for循环写法对效率的影响 说上面那段代码之前,先说一下for循环的效率问题。在接触js时关于for循环的写法和对效率影响的文章挺不少的。但总的来说对于for循环的写法有这么两种: 不写声明变量的写法: for(var i = 0;i<arr.length;i++){} 写声明变量的写法: for(var i = 0,len = arr.length;i < len;i++){} 除了for循环还有forEach(),也有文章说forEach()效率最高,推荐用forEach()写法,那么到底哪个效率高呢?做个测试来看看吧。 测试方案 总的测试方案如下: 做一个容纳4千万的测试数组变量。 分别用两种写法的for循环和foreach对这个测试变量进行遍历。 在同一台稳定机器上,进行10次测试,最后取平均值。 测试环境:CPU:Inter(R) Core i5-3210M,RAM:12GM,system

Java for循环和foreach循环的性能比较

亡梦爱人 提交于 2019-12-09 04:56:17
就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了? 两种循环的语法格式: 普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreach 循环语法: for(Integer in : integers){ System.out.println(in); } 今天我们来比较一下两种for循环对ArrayList和LinkList集合的循环性能比较。首先简单的了解一下ArrayList和LinkList的区别: ArrayList:ArrayList是采用数组的形式保存对象的,这种方式将对象放在连续的内存块中,所以插入和删除时比较麻烦,查询比较方便。 LinkList:LinkList是将对象放在独立的空间中,而且每个空间中还保存下一个空间的索引,也就是数据结构中的链表结构,插入和删除比较方便,但是查找很麻烦,要从第一个开始遍历。 下面是我测试的代码: public static void main(String[] args){ //实例化arrayList List<Integer> arrayList = new ArrayList<Integer>(); /

两重for循环的效率对比

試著忘記壹切 提交于 2019-12-09 04:55:11
int a[n][m] for ( int i= 0 ;i<n;i++){ for ( int j= 0 ;j<m;j++){ // a[i][j] } } for ( int j= 0 ;j<m;j++){ for ( int i= 0 ;i<n;i++){ // a[i][j] } } 以上两个循环的效率谁比较高: 对于现代数组来说,都是行存储优先: a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] .... a[ 100 ][ 0 ] a[ 100 ][ 1 ] .... a[ n ][ m ] 而我们的缓存,主要是将内存中的某段数据放入缓存区,下次访问内存则不需通过内存读取而是直接从缓存读取。 比如一个通用CPU,一级缓存(L1-Cache)的大小为16K,而其组织结构为每32个字节一组,我们能一次缓存8个整形数据: a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ] 如果我们以先列后行的形式进行访问的话: a[ 0 ][ 0 ]命中 a[ 1 ][ 0 ]不命中,重新读取内存数据至缓存 a[ 2 ][ 0 ]不命中,重新读取内存数据至缓存 ... 以此类推,这种读取的方法不仅仅降低了缓存的命中率,而且还增加了大量的读取内存的时间开销。 相反以先行后列地读取: a[ 0 ][ 0 ]命中 a[ 0 ][ 1

foreach和for循环的区别

╄→尐↘猪︶ㄣ 提交于 2019-12-09 04:54:52
for循环 for循环,通过下标,对循环中的代码反复执行,功能强大,可以通过index取得元素。在处理比较复杂的处理的时候较为方便。 foreach循环 foreach,从头到尾,对于集合中的对象遍历。适用于简单的遍历。 foreach使用的时候,会锁定集合的对象,期间不能进行修改。 使用的选择 foreach相对于for循环,代码减少了,但是foreach依赖IEnumerable。在运行的时候效率低于for循环。当然了,在处理不确定循环次数的循环,或者循环次数需要计算的情况下。使用foreach比较方便。而且foreach的代码经过编译系统的代码优化后,和for循环的循环类似。 可以说,foreach语句是for语句的特殊简化版本,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。在复杂的循环设计时,还是应该使用for循环更加的灵活。 转载于:https://www.cnblogs.com/liyasong/p/6387843.html 来源: CSDN 作者: weixin_30659829 链接: https://blog.csdn.net/weixin_30659829/article/details/98670738

for循环效率对比

我是研究僧i 提交于 2019-12-09 04:54:16
三种for循环 1.【普通】for循环 for (var i = 0 ; i < arr. length ; i ++) { console.log(arr[i]); } 2.【加强版】for循环 for (var i = 0 ,len = arr. length ; i < len; i ++) { console.log(arr[i]); } 3.【for-in循环】 fir( var i in arr){ console .log(arr[i]); } 时间对比 通过以下代码来计算三个循环的运行时间 function test1 () { var arr = new Array ( 1000000 ); var date1 = new Date (); for ( var i = 0 ;i<arr.length;i++){ arr[i]= 0 ; } var date2 = new Date (); for ( var i = 0 ,j=arr.length;i<j;i++){ arr[i]= 1 ; } var date3 = new Date (); for ( var i in arr){ arr[i]= 2 ; } var date4 = new Date (); var for1_time = (date2 - date1); var for2_time =