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

  • 相关阅读:
    基于XML的声明式事务控制
    spring中JdbcTemplate使用
    四种常用的通知类型(xml)
    AOP配置步骤(XML)
    12388. 图论割边
    12389. 割点
    12206. 电缆网络
    12178. 破坏牛棚
    java反射笔记
    java单元测试
  • 原文地址:https://www.cnblogs.com/xzmxddx/p/10354831.html
Copyright © 2011-2022 走看看