可以使用Java 8的Stream API来处理这个问题。

假设数据库查询出来的学生ID和试题ID的集合为dbList,API中获取出的学生ID和试题ID的集合为apiList

首先,我们可以使用Stream的map方法将dbList中的每个元素转换为学生ID和试题ID的组合,得到一个新的Stream。代码如下:

Stream<String> dbStream = dbList.stream()
        .map(item -> item.getStudentId() + "-" + item.getQuestionId());

接着,我们可以使用Stream的filter方法将dbStream中的元素与apiList中的元素进行对比,过滤出在apiList中不存在的数据。代码如下:

List<String> newItems = dbStream.filter(item -> !apiList.contains(item))
        .collect(Collectors.toList());

最后,newItems中就是在API中还没有添加到数据库中的数据,每个元素都是学生ID和试题ID的组合。

完整的代码如下:

List<StudentQuestion> dbList = // 从数据库查询出来的数据
List<String> apiList = // 从API中获取出的数据

Stream<String> dbStream = dbList.stream()
        .map(item -> item.getStudentId() + "-" + item.getQuestionId());

List<String> newItems = dbStream.filter(item -> !apiList.contains(item))
        .collect(Collectors.toList());

注意:上述代码中的StudentQuestion是一个自定义的类,代表数据库中的学生试题信息。你需要将其替换为你实际使用的类名,并根据实际情况修改getStudentId()getQuestionId()方法的调用

java8将数据库查询出来的list中的学生ID和试题ID分别取出与API中获取出的集合进行学生ID和试题ID对比得到API中还没有添加到数据库中的数据

原文地址: https://www.cveoy.top/t/topic/ihfQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录