一次很简单的代码优化--lamda的使用与不用

这里我使用了4次lamda来完成一项很简单的功能
//将F40USD,F40SGD,转换为F40EUR
因为F40EUR需要作为最终的输出

不难看出,下面代码最大的问题就是挤在一堆,没有层次感,这也是lamda表达式的特点,大多数时候是优点(快)。
处理ifelse比较多的时候就不要去用了

 	newError=error.stream().filter(s -> !t0CurrencySymbol.contains(s.substring(0,3))).collect(Collectors.toList());
      error= error.stream().filter(s -> t0CurrencySymbol.contains(s.substring(0,3))).collect(Collectors.toList());
      error.forEach(c->cfdError.add(c.substring(0,3)));
      Set<String> cfdErrorAdd = t0Currency.stream().filter(s -> cfdError.contains(s.substring(0, 3))).collect(Collectors.toSet());
      newError.addAll(cfdErrorAdd);

在优化后
很简单朴素的代码,可能我在之后学习力会

for (String s : error) {
        if(!t0CurrencySymbol.contains(s.substring(0,3))){
          newError.add(s);
        }else {
          for (String s1 : t0Currency) {
            if(s.substring(0,3).equals(s1.substring(0,3))){
              newError.add(s1);
            }
          }
        }
      }
发布了29 篇原创文章 · 获赞 0 · 访问量 633

猜你喜欢

转载自blog.csdn.net/weixin_43343786/article/details/105711967