1. 程式人生 > >項目中,使用算法的簡單例子

項目中,使用算法的簡單例子

all list pro pan 所有 ash type 是我 upa

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

項目中,使用算法的簡單例子