网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 前端脚本 » 正文

foreach,foreach用法

2020-3-18 14:30:18 | 作者:老铁SEO | 0个评论 | 人浏览

  foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。


  foreach语法格式如下:


  正确用法应该是:


  foreach又称增强for,是for循环的一个特殊简化版。


  foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。


  让我们看一下这个例子:


  注意事项:


  foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改,否则会报出java.util.ConcurrentModificationException异常。


  foreach用法


  foreach(chararginargs)//"char"是args里面每个元素的类型,arg就是从args里面提取出的“char”类型的一个元素,in是关键字,args就是你要操作的集合类型数据。其实和for()循环类似,只是不需要记录循环步数,同时,在foreach过程中,args是不允许被改变的。


  {


  if(arg==ch)


  {


  //存在


  }


  else


  {


  //不存在


  }


  )


  foreach循环遍历数组


  String[]array={"1","2","3","4","5"};


  //for循环


  for(inti=0;i<array.length;i++){


  System.out.println(array[i]);


  }


  //foreach不是java里面的关键字,foreache循环一般是指这个


  for(Stringstring:array){


  System.out.println(string);


  }<


  >


  foreach和for循环区别


  1.如果只是遍历集合或者数组,用foreach好些,快些。


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


  for(Stringaid:list){


  if(aid.equals("aa")){


  list.remove(aid);//这行会报错,不能修改list的长度


  }


  }


  所以foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句。


  foreach和map的区别


  JS的forEach和map方法都是ES5为处理数组而新增的迭代方法,区别在于map方法返回一个新数组,而forEach方法没有返回值。举个例子:


  vararr=[1,2,4,7,8];


  //目标:上述数组里的每一项偶数都+1,使整个数组里都是奇数。


  //map方法


  varresult=arr.map(function(item){


  returnitem%2===0?item+1:item;


  });


  console.log(result);//[1,3,5,7,9]


  //forEach方法


  varresult=[];


  arr.forEach(function(item){


  if(item%2===0){


  item+=1;


  }


  result.push(item);


  });


  console.log(result);//[1,3,5,7,9]<


  >


  从上述例子可以看出,使用map方法要方便的多,代码也更优雅。这里需要注意的是这两个方法不支持IE9以下的IE浏览器,要兼容的话一般用for循环来实现:


  //for循环方法


  varresult=[];


  for(vari=0;i<arr.length;i++){


  if(arr[i]%2===0){


  arr[i]+=1;


  }


  result.push(arr[i]);


  }


  console.log(result);//[1,3,5,7,9]<


  >

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    相关推荐