Java-获取两个列表之间的差异

Java-获取两个列表之间的差异,java,Java,我试图找出Java中两个列表之间的差异。我使用的示例()建议使用removeAll()查找差异,但这不起作用。相反,我似乎得到了教练和教师的组合列表 代码: List<String> coaches = new ArrayList<>(); coaches.add("Josh"); coaches.add("Jake"); coaches.add("Tyler"); List<String> teachers = new ArrayList<>(

我试图找出Java中两个列表之间的差异。我使用的示例()建议使用
removeAll()
查找差异,但这不起作用。相反,我似乎得到了
教练
教师
的组合列表

代码:

List<String> coaches = new ArrayList<>();
coaches.add("Josh");
coaches.add("Jake");
coaches.add("Tyler");

List<String> teachers = new ArrayList<>();
coaches.add("Josh");
coaches.add("Jake");

coaches.removeAll(teachers);

for (String name : coaches) {
    System.out.println("Name is: " + name);
}

如何检查
teachers
是否缺少
Tyler
值,以便
Tyler
将被返回?

例如,要在不丢失教练列表的情况下查看谁只是教练而不是老师:

List<String> coaches = new ArrayList<>();
coaches.add("Josh");
coaches.add("Jake");
coaches.add("Tyler");

List<String> teachers = new ArrayList<>();
teachers.add("Josh");
teachers.add("Jake");

List<String> CoachesNotAlsoTeachers = new ArrayList<>();
CoachesNotAlsoTeachers.add(coaches);
CoachesNotAlsoTeachers.removeAll(teachers);

for (String name : CoachesNotAlsoTeachers ) {
    System.out.println("Name is: " + name);
}
List coach=new ArrayList();
添加(“Josh”);
加上(“杰克”);
添加(“泰勒”);
列表教师=新建ArrayList();
教师。添加(“Josh”);
教师。加上(“杰克”);
List CoachesNotAlsoTeachers=新数组列表();
CoachesNotAlsoTeachers.add(coach);
辅导教师。移除所有(教师);
for(字符串名称:CoachesNotAlsoTeachers){
System.out.println(“名称为:”+Name);
}

“…但这不起作用”-它怎么不起作用?向我们展示一个MCVE。这样做
Coach.removeAll(教师)
将在您的示例中留下“Tyler”,让您知道
教师
不包含“Tyler”…我已更新了我的问题,以显示您所做的
教练。添加两次
而不是
教师。添加
…我确实简化了上面的示例。removeAll()是否也适用于类列表?(我不认为字符串和类的列表会造成差异)感谢您指出我在示例中的错误。我觉得我的例子简化得太多了。在我的工作问题中,我使用的是对象列表,而不是字符串列表。
removeAll()
是否仍应具有相同的行为?是的,只要它们是相同类型的对象。
List<String> coaches = new ArrayList<>();
coaches.add("Josh");
coaches.add("Jake");
coaches.add("Tyler");

List<String> teachers = new ArrayList<>();
teachers.add("Josh");
teachers.add("Jake");

List<String> CoachesNotAlsoTeachers = new ArrayList<>();
CoachesNotAlsoTeachers.add(coaches);
CoachesNotAlsoTeachers.removeAll(teachers);

for (String name : CoachesNotAlsoTeachers ) {
    System.out.println("Name is: " + name);
}