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循环更为灵活。