package com.jintao.list;
import java.util.List;
public class ListRemove
{
/**
* @author yangjinjue
* @param args
*/
public static void main(String[] args)
{
List<String> listTest1 = new ArrayList<String>();
listTest1.add("ff");
listTest1.add("ff");
listTest1.add("yy");
System.out.println(listTest1.get(0));
for(int i = 0; i < listTest1.size(); i++)
{
if(listTest1.get(i).equals("ff"))
{
listTest1.remove(i);
i--;
}
}
System.out.println(listTest1);
}
}
结果是:[yy]
注意循环里面有个i--,如果没有这个减的话,结果就不是我们预想的样子会是[ff,yy]。因为List成员每次变化之后,list会动态调节每个元素的索引号,当第一次循环结束后,第一个ff被移出,第二个ff下标动态变成0,yy下标变为1,listTest1.size()为2,这时第二次进入循环i为1,这样就遍历不到第二个ff。