1.刚学增强for时遍历数组或集合可能会与普通for循环弄混导致报错
public static void main(String[] args)
{
int[] a= {1,2,3,4};
for(int i:a)
{
System.out.print(a[i]);
}
}
234Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at DFS/DFS.DFS.main(DFS.java:59)
正确方法是直接输出i即可,数组a会将值赋予i
public static void main(String[] args)
{
int[] a= {1,2,3,4};
for(int i:a)
{
System.out.print(i);
}
}
1234
2.增强for用来遍历,不能进行增加或删减
(1)可进行遍历
public static void main(String[] args)
{
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for(int i:list)
{
System.out.print(i);
}
}
123
(2)不可进行增添,删减
public static void main(String[] args)
{
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for(int i:list)
{
if(i==3)
{
list.remove(0);
}
System.out.println(i);
}
Exception in thread "main" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:967)
at DFS/DFS.DFS.main(DFS.java:62)
解决办法:可以使用break解决
public static void main(String[] args)
{
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for(int i:list)
{
if(i==3)
{
list.remove(0);
break;
}
System.out.println(i);
}
}
1
2