项目中,使用算法的简单例子

1.为什么要学习算法

学习算法肯定是为了使程序更加的高效

2.简单使用例子

1.需求:查找部分商品类目信息并且分类返回

2.代码

    public ResultVO list() {
        // 1)查询所有上架商品
        List<ProductInfo> productInfoList = productInfoService.findUpAll();
        // 2)通过商品查询响应的类目
        List<Integer> categoryTypeList = productInfoList.stream().map(x -> x.getCategoryType()).collect(Collectors.toList());
        List<ProductCategory> productCategoryList = productCategoryService.findByCategoryTypeIn(categoryTypeList);
        // 3)拼装成对应的json
        List<ProductVO> productVOList = new ArrayList<>();
        for(ProductCategory productCategory:productCategoryList){
            ProductVO productVO = new ProductVO();
            productVO.setCategoryName(productCategory.getCategoryName());
            productVO.setCategoryType(productCategory.getCategoryType());
            List<ProductInfoVO> productInfoVOList = new ArrayList<>();
            for(ProductInfo productInfo:productInfoList){
                if(productCategory.getCategoryType().equals(productInfo.getCategoryType()) ){
                    ProductInfoVO productInfoVO = new ProductInfoVO();
                    BeanUtils.copyProperties(productInfo,productInfoVO);
                    productInfoVOList.add(productInfoVO);
                }
            }
            productVO.setProductInfoVOList(productInfoVOList);
            productVOList.add(productVO);
        }
        return ResultVOUtil.success(productVOList);
    }

首先我们查找了所有的商品,然后再将其类目查找了出来

但是我们在拼装这个json时候,我们采用了循环的方法,这个方法的时间复杂度是O(N^2),如果使用Map这个数据结构,我们的时间复杂度将会减少,具体减少就看hash算法

猜你喜欢

转载自www.cnblogs.com/xzmxddx/p/10354831.html
今日推荐