1. 程式人生 > 其它 >關於stream().filter方法實現資料排序問題

關於stream().filter方法實現資料排序問題

if("ArrangeGridKJXX".equals(args.get("gridName"))){
                Stream<Map<String, Object>> proposalStage = list.stream().filter(s -> "立項階段".equals(s.get("C_PHASE_NAME")));
                Stream<Map<String, Object>> implementStage = list.stream().filter(s -> "實施階段".equals(s.get("C_PHASE_NAME")));
                Stream
<Map<String, Object>> checkStage = list.stream().filter(s -> "驗收階段".equals(s.get("C_PHASE_NAME"))); Stream<Map<String, Object>> resultsManagement = list.stream().filter(s -> "成果管理階段".equals(s.get("C_PHASE_NAME"))); Stream<Map<String, Object>> resultsConversion = list.stream().filter(s -> "成果轉化階段".equals(s.get("C_PHASE_NAME"))); Stream
<Map<String, Object>> typeName = list.stream().filter(s -> (!"科研案卷".equals(s.get("TYPE_NAME")) && !"科研檔案".equals(s.get("TYPE_NAME"))) || StringUtils.isEmpty((String)s.get("C_PHASE_NAME"))); Stream<Map<String, Object>> concatA = Stream.concat(proposalStage, implementStage); Stream
<Map<String, Object>> concatB = Stream.concat(concatA, checkStage); Stream<Map<String, Object>> concatC = Stream.concat(concatB, resultsManagement); Stream<Map<String, Object>> concatD = Stream.concat(concatC, resultsConversion); list = Stream.concat(concatD, typeName).collect(Collectors.toList()); }

以上程式碼可以實現對列表中資料的排序問題