zoukankan      html  css  js  c++  java
  • 项目中,使用算法的简单例子

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

  • 相关阅读:
    laravel本地化
    laravel加载javascript库
    laravel安装第三方包3rd generators
    openfire的smack和asmack
    openfire+spark+smack实现即时通讯
    openfire开发
    即时通信Spark安装和配置
    ubuntu eclipse CDT 问题
    网络编程TCP总结及实践-C语言
    [Openstack]使用devstack自己主动化安装
  • 原文地址:https://www.cnblogs.com/xzmxddx/p/10354831.html
Copyright © 2011-2022 走看看