//获取所有班级
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编程语言中,集合(Collections)是存储和操作对象的主要数据结构,其中包括两种常见的类型:List和Set。本文将深入探讨List和Set在使用`retainAll`方法时的效率差异,并通过`ListAndRetainAll.java`和`...
### Java应用:两种Java容器类List和Set分析 #### 一、概述 在Java编程语言中,集合框架(Collections Framework)是处理数据的核心组件之一,它提供了存储和操作对象的各种方式。本文将深入探讨Java中的两种重要...
Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...
Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象集合,提供了许多有用的方法来操作集合元素,例如添加、删除、遍历等。Collection 是一个接口,下面有两个子接口:List 和 Set。 List ...
在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...
为了避免上述异常,有以下两种正确的方法来遍历并删除List和Set集合中的元素: 1. **使用Iterator进行遍历和删除** 这种方法通过获取集合的Iterator,并在循环中使用`iterator.remove()`方法删除元素,避免了并发...
Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...
在Java中,集合主要分为三大接口:List、Set和Map。这些接口各有特点,适用于不同的应用场景。 一、List接口 List接口是单列集合的子接口,它允许存储重复的元素,并且元素具有顺序性。List接口提供了丰富的操作...
本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...
javascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array ...
本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...
在Java编程语言中,集合框架提供了多种数据结构,如List和Set,它们是日常开发中常用的工具。本讲义主要关注这两个核心概念,旨在帮助学习者深入理解和应用。 首先,我们来探讨List接口。List是有序的集合,允许...
在Java编程语言中,Map、List和Set是三个核心的集合接口,它们分别代表了键值对、有序元素列表和不重复元素集合。这三种数据结构在实际开发中有着广泛的应用,理解它们的特性和使用方式是每个Java开发者的基础技能。...
深入的洞察到Java集合框架的核心组件:Map, List, 和 Set。首先,深入分析了HashMap的内部结构,包括它的数组+链表+红黑树的数据结构。重要的是理解如何处理并发问题,特别是在Java 8中对HashMap的优化,如高低位...
在Java编程语言中,集合框架是处理对象数组的核心工具,其中List和Set是两种主要的数据结构。List接口代表一个有序的列表,可以包含重复元素;而Set接口则代表一个无序的集合,不允许有重复元素。今天我们将深入探讨...
Collection接口是Java集合框架的根接口,定义了基本的集合操作,而List接口和Set接口继承自Collection接口,提供了有序和无序的集合操作。Map接口提供了键值对的存储和操作。 Java集合框架是Java语言中最基本也是最...
总结一下: ArrayList:如果是查改多,用ArrayList LinkedList:如果是增删插多,用LinkedList Vector:如果是有线程安全要求用...LinkedHashSet:如果需要元素不重复,并且,有存入和取出顺序要求用LinkedHashSet
本知识图谱将详细讲解Java集合中的Map、List和Set三大主要接口,以及它们的实现类。 首先,我们来看“2.3 Java集合图谱.jpg”,这张图谱通常会展示整个Java集合框架的层级结构,包括ArrayList、LinkedList、HashSet...
在java集合框架中,List和Set是两个非常重要的接口,分别用于存储有序和无序的集合。下面我们将通过四个练习题来深入了解List和Set的使用。 练习题1:获取10个1至20的随机数 在这个练习题中,我们需要编写一个程序,...
集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等。Collection 接口没有实现类,因此需要通过其子接口来实现。 Set 是一个...