日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集合转换Stream流式操作

發(fā)布時間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合转换Stream流式操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

List集合中對象轉(zhuǎn)map

public class QuestionDto {/*** choice_question pid*/@PrimaryKeyprivate String id;/*** 順序*/@Min(0)private Integer sort;...}

所涉及的代碼

Map<String, Integer> collect = list.stream().filter(e -> e.getSort() != null).collect(Collectors.toMap(QuestionDto::getId, QuestionDto::getSort));

所涉及的service層全部代碼

@Transactional(rollbackFor = Exception.class)public void updateQuestionSort(String chapterId, List<QuestionDto> list) {List<String> questionPidList = list.stream().map(QuestionDto::getId).collect(Collectors.toList());//獲取課程章節(jié)相關(guān)的習(xí)題List<CourseStepQuestion> exercisesOfChapterList =courseChapterQuestionRepository.findAllByChapterPidAndQuestionPidIn(chapterId, questionPidList);if (Integer.compare(list.size(), exercisesOfChapterList.size()) != 0) {throw new BusinessException("course.chapter.exercises.NotMatching.message");}Map<String, Integer> collect = list.stream().filter(e -> e.getSort() != null).collect(Collectors.toMap(QuestionDto::getId, QuestionDto::getSort));exercisesOfChapterList.forEach(e -> {e.setQuestionSort(collect.get(e.getQuestionPid()));});courseChapterQuestionRepository.saveAll(exercisesOfChapterList);}

第二種也是涉及集合轉(zhuǎn)換

@Transactional(readOnly = true)public List<ChoiceQstDto> findExercisesOfChapter(String chapterId, String relation) {List<CourseStepQuestion> exercisesOfChapterList= courseChapterQuestionRepository.findByChapterPidOrderByCreateTimeDesc(chapterId);List<String> exercisesIdOfChapterList= exercisesOfChapterList.stream().map(CourseStepQuestion::getQuestionPid).collect(Collectors.toList());if (relation.equals(ASSOCIATION)) {// 獲取本節(jié)課程關(guān)聯(lián)的練習(xí)題Map<String, Integer> collect = exercisesOfChapterList.stream().collect(Collectors.toMap(CourseStepQuestion::getQuestionPid, CourseStepQuestion::getQuestionSort));List<ChoiceQuestion> choiceQuestionList = choiceQuestionRepository.findAllById(exercisesIdOfChapterList);return choiceQuestionList.stream().map(e -> new ChapterChoiceQstDto(e.getPid(), e.getTitle(), e.getQuestionType(),e.getContent(), e.getAnswer(), e.getOptions(), collect.get(e.getPid()))).collect(Collectors.toList());}// 默認(rèn)獲取本節(jié)課程不關(guān)聯(lián)的練習(xí)題List<ChoiceQuestion> choiceQuestionList = choiceQuestionRepository.findByPidNotIn(exercisesIdOfChapterList);return choiceQuestionList.stream().map(e -> new ChapterChoiceQstDto(e.getPid(), e.getTitle(), e.getQuestionType(), e.getContent(), e.getAnswer(), e.getOptions())).collect(Collectors.toList());} CourseChapterQuestionRepository: List<CourseStepQuestion> findByChapterPidOrderByCreateTimeDesc(String chapterId);

總結(jié)

以上是生活随笔為你收集整理的集合转换Stream流式操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。