import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListRemoveTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); int i =0; for(i=0;i<3;i++){ list.add("aaaaa1111"); } //第一種方式 //從後面遍歷就沒必要考慮長度的問題了,移除後面的對象不會對整個鏈表位置產生變化 int size =list.size(); for(i=size-1;i>-1;i--){ if("aaaaa1111".equals(list.get(i))){ list.remove(i); } } //第二種 //遍歷的長度必定要是list.size(),由於後面移除對象以後就會致使list長度變化 for(i=0;i<list.size();i++){ if("aaaaa1111".equals(list.get(i))){ list.remove(i); i--; } } //第三種 //最經常使用的方式 Iterator<String> it = list.iterator(); while(it.hasNext()){ if("aaaaa1111".equals(it.next())){ //移除當前的對象 it.remove(); } } System.err.println(list.size()); } }