您可以使用以下代码来实现截取和添加的逻辑:

// 假设您的考试信息存储在一个名为examList的List中
List<Exam> examList = ...;

// 假设您的数据库操作类为ExamDao
ExamDao examDao = new ExamDao();

// 定义要截取的数量
int toBeCut = 20;

// 定义要添加的数量
int toBeAdded = 0;

// 定义一个新的List用于存储截取的考试信息
List<Exam> cutList = new ArrayList<>();

// 遍历原始考试信息列表,截取存在于数据库中的考试信息
for (Exam exam : examList) {
    if (examDao.isExamExist(exam)) {
        cutList.add(exam);
        toBeCut--;
        if (toBeCut == 0) {
            break;
        }
    }
}

// 如果截取的数量不足20个,则继续从原始考试信息列表中取出剩下的考试信息
if (toBeCut > 0) {
    for (Exam exam : examList) {
        if (!examDao.isExamExist(exam)) {
            cutList.add(exam);
            toBeCut--;
            toBeAdded++;
            if (toBeCut == 0) {
                break;
            }
        }
    }
}

// 如果截取和添加的数量仍未满足20个,则从数据库中取出不存在的考试信息进行补充
if (toBeCut > 0) {
    List<Exam> newExams = examDao.getNonExistExams(toBeCut);
    cutList.addAll(newExams);
    toBeAdded += toBeCut;
}

// 输出截取和添加的数量
System.out.println("截取数量:" + (20 - toBeCut));
System.out.println("添加数量:" + toBeAdded);

注意,上述代码中的Exam为您自定义的考试信息类,ExamDao为您自定义的数据库操作类。您需要根据实际情况进行调整和完善

java如何截取list中的考试信息如果截取的20个都在数据库中已存在就再取20个如果取得20个中有未存在的就再取出几个凑成20个如果剩下的数据不足以凑成20个就添加数据库中不存在的

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

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