Stream中filter過濾條件問題記錄

jlu_peter發表於2020-12-04

搜尋員工列表中,管理者的UID
 

  Set<Long> leaderSet = new HashSet<>();
        List<StaffDto> allUserList = staffService.getByDepartId(xxx, true);
        leaderSet = allUserList.stream().filter(staffDto -> {
            //該語句塊中返回true會新增到set集合中,返回false會繼續執行下一條記錄
            try {
                if (staffDto == null) {
                    return false;
                }
                StaffDto s = staffService.getByUserId(staffDto.getUserId(), "xxx");
                if (s != null && s.getRankName() != null && s.getRankName().contains("M")) {
                    System.out.println(s.getChineseName());
                    return true;
                }
                return false;
            } catch (Exception e) {
                System.out.println("判斷是否為管理層異常" + e);
                return false;
            }
        }).map(udt -> udt.getUserId()).collect(Collectors.toSet());

 

相關文章