List循环输出时剔除元素
List循环输出时删除元素ListString lists new ArrayListString()lists.add(ad)lists.add(dv)
List循环输出时删除元素
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