怎么将嵌套的for循环改成stream流

lz940222 2021-04-26 03:21:41

这个代码改成stream流,求大佬指导.


...全文
141 点赞 收藏 5
写回复
5 条回复
James灬Gosling 04月27日
引用 2 楼 lz940222 的回复:
[quote=引用 1 楼 James灬Gosling 的回复:]你这是要优化代码?优化的点不在stream流,而是要改造不要在循环中删除数据,而是用个LIst将要删除的ID存储起来,在循环外面进行一次性删除


我这个是要根据id来删除数据的,如果放到list中还是得循环得到id才能删除了啊,那不就是多此一举了吗?[/quote]


你在循环中执行sql语句一百次,和你把ID存起来,在外面执行sql语句一次,性能提升不止百倍哦
回复 点赞
lz940222 04月27日
引用 1 楼 James灬Gosling 的回复:
你这是要优化代码?优化的点不在stream流,而是要改造不要在循环中删除数据,而是用个LIst将要删除的ID存储起来,在循环外面进行一次性删除
我这个是要根据id来删除数据的,如果放到list中还是得循环得到id才能删除了啊,那不就是多此一举了吗?
回复 点赞
maradona1984 04月27日
引用 2 楼 lz940222 的回复:
[quote=引用 1 楼 James灬Gosling 的回复:]你这是要优化代码?优化的点不在stream流,而是要改造不要在循环中删除数据,而是用个LIst将要删除的ID存储起来,在循环外面进行一次性删除
我这个是要根据id来删除数据的,如果放到list中还是得循环得到id才能删除了啊,那不就是多此一举了吗?[/quote] 代码中纯粹的循环,1ms能跑个几万次(就加减法这种逻辑),但与数据库打一次交道就至少1ms往上(最简单的sql,数据库在同机房),你想想这其中的差距吧
回复 点赞
刚实习,被老大说的最多的是for循环里面不要去执行单条的操作,所有的for循环操作比如查询、删除,最好改成批量,比如在for循环拿到ids即可,在for循环外面selectBatchIds(我用的mybatis plus )就行了,你参考参考~
回复 点赞
James灬Gosling 04月26日
你这是要优化代码?优化的点不在stream流,而是要改造不要在循环中删除数据,而是用个LIst将要删除的ID存储起来,在循环外面进行一次性删除
回复 点赞
发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告