java中的foreach用法,java中有foreach吗

  java中的foreach用法,java中有foreach吗

  如何解决写爬虫IP受阻的问题?立即使用。

  相关:《Java视频教程》

  首先说一下foreach,也叫增强for循环。foreach实际上是for循环的特殊简化版本。

  再说一下foreach的书写格式:

  For(元素类型元素名称:遍历数组(集合)(或迭代)){

  句子

  }虽然foreach是for循环的简化版,但并不代表foreach就比for好。当循环数未知或计算循环数很麻烦时,Foreach效率更高。但是一些更复杂的循环还是需要使用for循环,这样效率更高。

  我们看看下面的例子:

  公共静态void main(String[] args) {

  ListString arr=new ArrayList string();

  arr . add( Hello );

  arr . add( Hello );

  Arr.add(大家好);

  //foreach循环

  For(String str: arr){ //这里的str只是为了获取每个循环的arr中的值。

  system . out . println(str);//等效于字符串str=arr[i]

  }

  }但是相比较而言,我们用for循环输入就有点麻烦了。

  公共静态void main(String[] args) {

  ListString arr=new ArrayList string();

  arr . add( Hello );

  arr . add( Hello );

  Arr.add(大家好);

  //for循环

  for(int I=0;iarr . size();i ){

  system . out . println(arr . get(I));//需要get方法来获取列表中的元素

  }

  }除了这个常用的集合,它还可以像map一样用于键值对。

  例如:

  公共静态void main(String[] args) {

  MapString,String mapstr=new HashMapString,String();

  Mapstr.put(王,男);

  Mapstr.put(李,男);

  Mapstr.put(张,女);

  //使用//entrySet方法获取键值对的集合。

  对于(图。EntryString,String s:mapstr . entry set()){//这里的map.entrystring,实际上是用来表示键值对的类型。

  system . out . println( key= s . getkey());//这其实相当于s=maostr.entrySet,只不过s存储的是键值对。

  system . out . println( value= s . getvalue());//这样就可以使用get方法来获取存储的键值对。

  }

  }另外,foreach不支持在循环中添加删除操作,因为使用foreach循环时数组(set)是锁定的,不能修改,否则会报错java.util.concurrency通知异常。

  例如:

  公共静态void main(String[] args) {

  ListString arr=new ArrayList string();

  arr . add( Hello );

  arr . add( Hello );

  Arr.add(大家好);

  //foreach循环

  for(String String:arr){

  system . out . println(str);

  arr . add( 1 );//添加数组

  }

  }所以总结如下:

  Foreach只适合遍历集合或数组,而for在更复杂的循环中更有效。

  Foreach不能修改数组或集合(添加删除操作)。如果你想修改它们,你必须使用for循环。

  因此,与for循环相比,它更加灵活。java中for和foreach有什么区别?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: