//获取所有班级
List<Grade> allGrades = gradeService.getAll();
Exam exam = examService.getWithGrades(examId);
//获取拥有的班级
Set<Grade> rightGrades = exam.getGrades();
//从所有班级中删除拥有的班级
allGrades.removeAll(rightGrades);
要达到效果,必须重写Grade对象的equals方法和hashcode方法.
@Override
public boolean equals(Object obj) {
Grade grade = (Grade) obj;
Long objId = grade.getId();
if (objId != null && id != null) {
if (objId.equals(id)) {
return true;
}
}
return super.equals(obj);
}
@Override
public int hashCode() {
if (id != null) {
return id.intValue();
}
return super.hashCode();
}
本文介绍了一种在Java中处理集合元素的方法,通过重写equals和hashCode方法确保正确地从一个集合中移除另一个集合的元素。示例展示了如何在Grade对象中实现这些方法以支持基于ID的精确匹配。

被折叠的 条评论
为什么被折叠?



