List<String> lists = new ArrayList<String>();
lists.add("ad");
lists.add("dv");
lists.add("dvs");
lists.add("adf");
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(s.equals("ad"))
{
lists.remove(s);
}
System.out.println(s);
}
结果
dvs
adf
因为你在lists.remove(s);的时候,ad被删除了,dv放在0的位置,而你for循环的i的值等于1了,打印的是lists(1),这个时候lists(1)值是dvs
解决:
1.可以这样:
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(!s.equals("ad"))
{
System.out.println(s);
}
}
结果是
dv
dvs
adf
2.
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(s.equals("ad"))
{
lists.remove(s);
i=i-1;
continue;
}
System.out.println(s);
}
结果是
dv
dvs
adf