for与foreach区别

首先说一下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循环更为灵活。

猜你喜欢

转载自www.cnblogs.com/HuiH/p/11665536.html