java8的lambda表達式,將List 轉爲 List

 

將List<PhoneDTO>轉爲List<PhoneDO>,經過java8的lambda表達式來操做,比傳統的for循環精簡不少:

 

    /**
     * List<PhoneDTO> 轉爲 List<PhoneDO>
     * @param paramList
     * @return
     */
    public static List<PhoneDO> phoneDTOList2PhoneDOList1(List<PhoneDTO> paramList) {
        if (CollectionUtils.isEmpty(paramList)) {
            return null;
        }

     // 獲取stream流,map進行映射操做,調用PhoneUtil類的phoneDTO2PhoneDO方法 List
<PhoneDO> phoneDOList = paramList.stream().map(PhoneUtil::phoneDTO2PhoneDO)
          // filter過濾:知足條件的才保留 .filter(obj
-> !Objects.isNull(obj))
          // 排序:傳入比較器 .sorted(Comparator .comparing(phoneDTO
-> (-1) * phoneDTO.getCreateTimestamp()))
          // 將最終的結果收集到一個List中 .collect(Collectors.toList());
return phoneDOList; }

 

PhoneUtil類的phoneDTO2PhoneDO方法:
  /**
     * PhoneDTO 轉爲 PhoneDO
     * @param param
     * @return
     */
    public static PhoneDO phoneDTO2PhoneDO(PhoneDTO param) {
        if (null == param) {
            return null;
        }

        PhoneDO result = new PhoneDO();
        BeanUtils.copyProperties(param, result);
        return result;
    }
相關文章
相關標籤/搜索