代码重构:循环语句(Loops)
【摘要】 什么是循环语句(Loops)定义:针对集合或数组进行简单过滤、分组、映射、遍历操作,采用传统for循环语句进行遍历影响:影响代码复杂度,代码不够简洁、直观,不容易理解代码意图。改进目标:针对可以使用stream替代的for循环,使用stream替代,简化代码方法:针对集合或数组过滤、映射、去重、查找、统计使用stream替代注:并非所有for循环都是坏味道。for循环作为极其常见的语法,本...
什么是循环语句(Loops)
-
定义:针对集合或数组进行简单过滤、分组、映射、遍历操作,采用传统for循环语句进行遍历
-
影响:影响代码复杂度,代码不够简洁、直观,不容易理解代码意图。
-
改进目标:针对可以使用stream替代的for循环,使用stream替代,简化代码
-
方法:针对集合或数组过滤、映射、去重、查找、统计使用stream替代
-
注:并非所有for循环都是坏味道。for循环作为极其常见的语法,本身没有问题,只是有些对集合、数组遍历的操作,for循环实现比较复杂,可以使用更简洁的stream表达式进行替换
案例
-
代码背景:现有一堆苹果,需要调查不同种类的苹果的平均重量。
-
症状/问题:采用传统循环方法:1次循环进行分组;2层循环求平均重量
代码复杂度高,需要多次循环嵌套完成,需要10+行代码完成 -
重构目标:采用Stream方法使代码更简洁
-
改进目标:原有方案:传统循环,新方案:采用stream
- 采用stream替代循环,只需提供相应的lambda表达式和函数即可,代码简洁
相关技巧
- 排查方法:搜索+人工判断
1、IDEA中全局搜索for循环代码
2、选中for代码,按下Alt+Enter键识别是否可自动重构
3、人工判断针对数组、集合遍历操作,是否包含过滤、分组、映射、匹配等基本功能
总结
- 并非所有for循环都是坏味道。for循环作为极其常见的语法,本身没有问题,只是有些对集合、数组遍历的操作,for循环实现比较复杂,可以使用更简洁的stream表达式进行替换
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)