关于for循环嵌套问题还有什么办法可以解决这个业务需求

img

img


我这样写代码会有什么问题吗,我知道如果数据量过大,那么肯定会慢,除了这种方法还有什么办法,除了三表联查?

业务需求发出来看看,看代码推出需求太累

sql优化,看你代码查询得字段应该是一样得,只是条件不一样,可以在sql层面过滤出想要得结果。如果抛开sql优化,还可以代码层面优化一点点,把set、get取值网上找一个反射方法去取会快点,美观方面嘛可以封装下

第二张图不是用了拉姆达表达式?, lambda表达式:数据量多的时候性能更好,普通for循环:数据量少的时候性能更好

  List<Equip> equips = equipService.query(specification);
        List<Mileage> mileages = mileageService.queryAll();
        List<Equip> equipList = new ArrayList<>();
      for(Equip equip:equips){
         if(mileages.stream().anyMatch(a->a.getEquipId() == equip.getId())){
             equipList.add(equip);
         }
      }

List<YourEntity> result = list.stream().filter((YourEntity m) -> m.getName() != null
                && Constants.STRING_ZERO.equals(m.getName2())).collect(Collectors.toList());