码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-02-07 16:14:25      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:cto   style   ret   integer   type   inf   span   copy   rop   

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算法

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

标签:cto   style   ret   integer   type   inf   span   copy   rop   

原文地址:https://www.cnblogs.com/xzmxddx/p/10354831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!