public class ListTest {
public List coursesToSelect;
public ListTest(){
this.coursesToSelect = new ArrayList();
}
public void testAdd(){
coursesToSelect.add(new Course("1","数据结构"));
Course temp = (Course)coursesToSelect.get(0);
System.out.println("添加了课程:"+temp.id+":"+temp.name);
Course cr2 = new Course("2","c语言");
coursesToSelect.add(0, cr2);
Course temp2 = (Course)coursesToSelect.get(0);
System.out.println("添加了课程:"+temp2.id+":"+temp2.name);
Course[] course = {new Course("3","离散数学"),new Course("4","汇编语言")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course)coursesToSelect.get(2);
Course temp4 = (Course)coursesToSelect.get(3);
System.out.println("添加了课程:"+temp3.id+":"+temp3.name+";"+
temp4.id+":"+temp4.name);
Course[] course2 = {new Course("5","高等数学"),new Course("6","大学英语")};
coursesToSelect.addAll(2,Arrays.asList(course2));
Course temp5 = (Course)coursesToSelect.get(2);
Course temp6 = (Course)coursesToSelect.get(3);
System.out.println("添加了课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);
}
/**
* 删除
*/
public void testRemove(){
Course[] course={(Course)coursesToSelect.get(4),(Course)coursesToSelect.get(5)};
coursesToSelect.removeAll(Arrays.asList(course));
}
public void testForeach(){
for(Object obj:coursesToSelect){
Course cr = (Course)obj;
System.out.println("添加了课程"+cr.name);
}
}
public static void main(String[]args){
ListTest lt1 = new ListTest();
lt1.testAdd();
lt1.testRemove();
lt1.testForeach();
}
}
控制台输出的结果是
添加了课程:1:数据结构
添加了课程:2:c语言
添加了课程:3:离散数学;4:汇编语言
添加了课程:5:高等数学;6:大学英语
到testRemove()就停止了,后面的foreach遍历也没执行
要学会自己解决问题啊,哥们,你自己debug模式查找下原因
老哥,,我亲测。。执行了哎,,,为什么你的没执行
拿你的代码试了试 ,没啥问题。
添加了课程:1:数据结构
添加了课程:2:c语言
添加了课程:3:离散数学;4:汇编语言
添加了课程:5:高等数学;6:大学英语
remove begin
添加了课程c语言
添加了课程数据结构
添加了课程高等数学
添加了课程大学英语
添加了课程离散数学
添加了课程汇编语言
remove end...
添加了课程c语言
添加了课程数据结构
添加了课程高等数学
添加了课程大学英语
我估计你的Course类没有重写equals方法,removeAll移除是根据equals来的
代码貌似没有什么问题,建议重启一下ide,或者clean一下,有时候是本身缓存导致的
代码没有问题 你可以看看你的别的设置
代码根本没问题,你重启一下电脑或者清除一下吧。