項目中,使用算法的簡單例子
阿新 • • 發佈:2019-02-07
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算法
項目中,使用算法的簡單例子