从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();
}
}
}
}
|