从List中删除元素,不能通过索引的方式遍历后删除,只能使用迭代器。
错误的实现
错误的实现方法
public class Demo { public static void main(String... args) { List<String> data = new ArrayList<String>(); data.add( "abc" ); data.add( "bcd" ); data.add( "cde" ); data.add( "def" ); data.add( "efg" ); data.add( "fgk" ); for ( int i = 0 , len = data.size(); i < len; i ++) { String item = data.get(i); if ( "cde" .equals(item)) { data.remove(i); } } } } |
错误的方法在删除的时候,会抛出一个异常。
正确的实现
正确是实现方法
public class Demo { public static void main(String... args) { List<String> data = new ArrayList<String>(); data.add( "abc" ); data.add( "bcd" ); data.add( "cde" ); data.add( "def" ); data.add( "efg" ); data.add( "fgk" ); Iterator<String> it = data.iterator(); while (it.hasNext()) { String item = it.next(); if ( "cde" .equals(item)) { it.remove(); } } } } |