java8 stream操作总结

昨天看到java9 支持 reactive stream,但是java被oracle收购之后,我为什么一定要用reactive stream呢,掌握java8 stream感觉跟python中pandas、numpy一样高效的操作数据集。
1 类型转换
这里使用到map转,非常简洁,你只需要明白函数式编程,输入到输出,就容易理解了

 List<Integer> currencys = Stream.of(accAccountSubject.getAssistAccounting().split(Split.COMMA)).map(c -> Integer.parseInt(c)).collect(Collectors.toList());

2 集合差异
使用filter,就可以将集合过滤出来

List<Integer> oldCurrencies = Stream.of(oldSub.getAssistAccounting().split(CommonSettingConstants.Split.COMMA))
                    .map(c -> Integer.parseInt(c)).collect(Collectors.toList());
            List<Integer> newCurrencies = Stream.of(newSub.getAssistAccounting().split(CommonSettingConstants.Split.COMMA))
                    .map(c -> Integer.parseInt(c)).collect(Collectors.toList());
            List<Integer> delCurrencies = oldCurrencies.stream().filter(o->!newCurrencies.contains(o)).collect(Collectors.toList());

3 树的构建
树的转换也非常优雅,不需要什么算法,只需要确定输入、输出以及给定关系就可以了

@Data
public class AccInitialBalanceTreeResp extends AccInitialBalanceResp {
   

    /**
     * 下级节点
     */
    private List<AccInitialBalanceTreeResp> children;
}
    /**
     * 将列表转成树结构
     * @param list
     * @param pId
     * @return
     */
    public List<AccInitialBalanceTreeResp> list2Tree(List<AccInitialBalanceTreeResp> list, String pId) {
   
        // 组装成父子的树形结构
        return list.stream().filter(m1 -> m1.getPid().equals(pId)
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值