黑马程序员技术交流社区
标题:
集合中关于remove方法的疑问,求解
[打印本页]
作者:
彭坤
时间:
2012-2-10 14:11
标题:
集合中关于remove方法的疑问,求解
本帖最后由 彭坤 于 2012-2-11 11:42 编辑
import java.util.ArrayList;
import java.util.List;
public class TestRemoveFromList {
public static void main(String[] args) {
List<Person> personList = new ArrayList<Person>();
personList.remove(new Person("张三",18));
}
}
class Person{
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "姓名:"+name + ",年龄:"+ age;
}
}
疑惑的是personList里面是空的,为什么我从里面移除一个对象没报错?
作者:
张伟~
时间:
2012-2-10 14:34
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)
也就是说如果你要移除的元素如果在则移除,并返回true,这个要移除的元素不在就放回false
System.out.println( personList.remove(new Person("张三",18)));//打印false
作者:
刘丁
时间:
2012-2-10 14:54
public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
从ArrayList类中的源代码 可以看出,在删除一个数据时 会判断该对象存在不存在 。 如果存在将其删除,并返回true .如果 不存在则返回false
作者:
彭坤
时间:
2012-2-10 14:58
张伟~ 发表于 2012-2-10 14:34
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)
也就是说如果你要 ...
回头查了一下API,确实是这么回事,谢谢
作者:
衣服
时间:
2012-2-10 19:19
只是true或false 并不一定报错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2