展开全部
这样打印只能打印出对象地址,teacher这个62616964757a686964616fe58685e5aeb931333363363462也是引用对象类型不过后面你又remove了一个字符串,就不懂了。class Teacher{
private String name;
set;get;
}
List list = new ArrayList();
Teacher t = new Teacher();
t.setName("name1");
Teacher t2 = new Teacher();
t.setName("name2");
list.add(t);
list.add(t2);
//这样写注意内存地址相同,下面遍历是有问题的
List list2 = list;
//应该这样写
List list2 = new ArrayList();
list2.addAll(list);
for(int i=0;i
if("name2".equls(list2.get(i).getName())){
list2.remove(i);
System.out.println("删除了list2的:"+list.get(i).getName());
}else{
System.out.println("保留了list2的:"+list.get(i).getName());
}
}
纯手写代码铁定有错误,不过意思应该都表达出来了,在集合中根据条件去除元素,这里牵涉到引用类型的对象的用法,和集合遍历删除需要注意的东西,你不能一边遍历它,还一边删除或增加自身的元素,不过如果使用递归到是可以的