java中list的removeAll方法为什么不执行

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一下,有时候是本身缓存导致的

代码没有问题 你可以看看你的别的设置

代码根本没问题,你重启一下电脑或者清除一下吧。