直接上代码如下图:
![559b25e45977a8d4be5972a1b26bcdfd.png](https://i-blog.csdnimg.cn/blog_migrate/78ece02dd6b5fabb63f06509f9b8b3d8.jpeg)
首先需求:订单order对应一个经纪人agent,有订单的经纪人才能够服务客户customer。要求是高、中等级的客户对应服务的经纪人优先级是高>中>初等级的经纪人,而低等级的客户服务的经纪人优先级是初>中>高。
代码实现:通过订单获取所有对应的经纪人,然后把经纪人根据等级分组。然后判断客户等级,如果是高、中意向,先筛选出高等级经纪人的订单,如果有直接返回,如果没有在筛选出中等级经纪人订单,如果有直接返回,如果还没有说明订单全是初级经纪人订单,最后直接返回。低等级客户实现相反。
代码实现后,提示代码重复!我也知道重复,但是感觉实在没有办法抽取出来。
第一次优化
有一行代码重复还是明显的,所以先抽取看看,结果如下图:
![bc35eb613385b7866a85024cd3c86b1d.png](https://i-blog.csdnimg.cn/blog_migrate/915b3a748fe3cd52fd3b9460a959359a.jpeg)
优化后还是提示代码重复,那就只能大改了,把判断里面全部抽取出来,重构如下图:
![fa5c39c9db5bceaa2b81a4d25a964db3.png](https://i-blog.csdnimg.cn/blog_migrate/a625553100bf814c2d977febc6998c40.jpeg)
终于idea不提示重复了,但是我们还可以在优化优化,经纪人提前分组不是一定必要的,只有在需要的时候才去获取对应等级的经纪人,最终优化如下图:
![bec3dd3fd38019884faac9191ad92dc9.png](https://i-blog.csdnimg.cn/blog_migrate/36174fd745134a7c19b1149fc583d71b.jpeg)
这样就减少了集合遍历的次数,实现了一定的优化!
Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!
![77e13510711eb355d31dfae246946911.png](https://i-blog.csdnimg.cn/blog_migrate/c53239d0d9ed9bb1fdbb3e9be10dd218.jpeg)