激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 老生常談foreach(增強for循環(huán))和for的區(qū)別

老生常談foreach(增強for循環(huán))和for的區(qū)別

2020-12-26 14:48看清你的未來 Java教程

下面小編就為大家?guī)硪黄仙U刦oreach(增強for循環(huán))和for的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

首先說一下foreach有的也叫增強for循環(huán),foreach其實是for循環(huán)的一個特殊簡化版。

再說一下foreach的書寫格式:

for(元素類型  元素名稱 : 遍歷數(shù)組(集合)(或者能進行迭代的)){

語句

 }

foreach雖然是for循環(huán)的簡化版本,但是并不是說foreach就比for更好用,foreach適用于循環(huán)次數(shù)未知,或者計算循環(huán)次數(shù)比較麻煩情況下使用效率更高,但是更為復雜的一些循環(huán)還是需要用到for循環(huán)效率更高。

我們看看下面的例子:

?
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
  List<String> arr = new ArrayList<String>();
  arr.add("你好");
  arr.add("我好");
  arr.add("大家好");
  
  //foreach循環(huán)
  for(String str : arr){       //這里的str就是為了獲取每次循環(huán)的arr中的值
   System.out.println(str);       //就相當于 String str=arr[i]
  }
 }

但是相比較之下我們用for循環(huán)輸入就略顯麻煩

?
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
  List<String> arr = new ArrayList<String>();
  arr.add("你好");
  arr.add("我好");
  arr.add("大家好");
  
  //for循環(huán)
  for(int i=0;i<arr.size();i++){
   System.out.println(arr.get(i)); //要獲取list中元素需要用get方法
  }
 }

除了這種普通的集合還可以對像map這種鍵值對使用

例如:

?
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
  Map<String,String> mapstr = new HashMap<String,String>();
  mapstr.put("王", "男");
  mapstr.put("李", "男");
  mapstr.put("張", "女");
                      //entrySet方法是為了獲取鍵值對的集合
  for(Map.Entry<String, String> s : mapstr.entrySet()){ //這里的Map.Entry<String, String>其實就是一個類型 用來表示鍵值對的類型
   System.out.println("key="+s.getKey());   //這里其實還是相當于 s=maostr.entrySet,只不過s存儲的是鍵值對。
   System.out.println("value="+s.getValue());  //所以可以用get方法獲取出來存儲的鍵值對。
  }
 }

另外foreach不支持在循環(huán)中添加刪除操作,因為在使用foreach循環(huán)的時候數(shù)組(集合)就已經被鎖定不能被修改,否則會報出java.util.ConcurrentModificationException異常

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
  List<String> arr = new ArrayList<String>();
  arr.add("你好");
  arr.add("我好");
  arr.add("大家好");
  
  //foreach循環(huán)
  for(String str : arr){    
   System.out.println(str);  
   arr.add("1");     //對arr進行添加
  }
 }

關于不能添加刪除原理以及如何在foreach中添加刪除我們下篇再說。

所以總結如下:

foreach適用于只是進行集合或數(shù)組遍歷,for則在較復雜的循環(huán)中效率更高。

foreach不能對數(shù)組或集合進行修改(添加刪除操作),如果想要修改就要用for循環(huán)。

所以相比較下來for循環(huán)更為靈活。

以上這篇老生常談foreach(增強for循環(huán))和for的區(qū)別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/XiaojianGo/archive/2017/09/04/7471860.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费观看国产视频 | 国产人妖一区二区 | 午夜神马电影网 | 姑娘第四集免费看视频 | chinesehdxxxx无套 久久另类视频 | 日本中文字幕久久 | 激情夜色 | 欧美日本在线播放 | 国产1区2| 午夜精品福利视频 | 久久久久久中文字幕 | 久久国产经典 | 91天堂国产在线 | 鲁一鲁一鲁一鲁一曰综合网 | 成人一级免费视频 | 中文字幕亚洲一区二区三区 | 美女黄污视频 | 激情福利视频 | 国产91影院 | 成人综合区一区 | av免费大全| 日韩在线视频二区 | 欧美性生活网站 | 久久久综合 | 中国hdxxxx护士爽在线观看 | 国产精品久久久久久久久久东京 | 国产亚洲综合精品 | 久久久噜噜噜久久熟有声小说 | 欧美精品一区二区三区四区 | 亚洲小视频网站 | av在线免费观看中文字幕 | 国产色视频免费 | 狠狠干天天 | 美国一级毛片片aa久久综合 | 精品国产一区二区三区天美传媒 | 欧美日韩视频第一页 | 国产91porn| 久久国产精品免费视频 | 午夜精品久久久久久久久久久久久蜜桃 | 久久久久久久不卡 | 黄色免费不卡视频 |