首先說一下for循環:
格式:for( ; ; ){};
1 public static void main(String[] args) { 2 List<String> arr = new ArrayList<String>(); 3 arr.add("你好"); 4 arr.add("我好"); 5 arr.add("大家好"); 6 for(int i=0;i<arr.size();i++){ 7 System.out.println(arr.get(i)); //要獲取list中元素需要用get方法 8 } 9 }
接下來看一下foreach循環
foreach也叫增強for循環,foreach的格式為:
for(元素類型 元素 :遍歷數組(集合)){
//語句
}
1 public static void main(String[] args) { 2 List<String> arr = new ArrayList<String>(); 3 arr.add("你好"); 4 arr.add("我好"); 5 arr.add("大家好"); 6 for(String str : arr){ //這里的str就是為了獲取每次循環的arr中的值 7 System.out.println(str); //就相當於 String str=arr[i] 8 } 9 }
總結:
foreach不支持在循環中添加刪除操作,因為在使用foreach循環時數組就已經被鎖定不能修改,否則會報出java.util.ConcurrentModificationException異常。
foreach適用於只是進行集合或數組遍歷,for則在復雜的循環中效果更高。
foreach不能對數組或集合進行修改,如果想要修改就要使用for循環。
所以相比較后for循環更為靈活。