java 开发之商品规格属性(SKU)组合算法

开发背景

一般在开发商城的时候都会遇到商品规格组合的问题, 在这个开发过程中就需要一套算法用来组合多个规格属性,用来给每个组合定一组封面图和价格

比如某宝的

直接发代码


/*** 商品规格组合算法*/
public class SpecAlgorithm<T>{/*** 商品规格组合 T 泛型不限对象类型,可以是基本数据类型,也可以是String 或自定义类** @param lists 设置的规格(传入的参数数量应对的是多少级的规格,T为声明的规格对象)* @return 返回的组合集合  数量公式 AxBxC...=N;*/public  List<List<T>> specesPlan(List<T>...lists){Log.i("algorit",lists.toString());List<List<T>> arrays = new ArrayList<>();if(lists.length == 0 ){return arrays;}for(T object :lists[0]){List<T> newObj = new ArrayList<>();List<List<T>> arrayList = new ArrayList<>();for(int i = 1 ; i < lists.length ; i ++){arrayList.add(lists[i]);}addPlan(arrays,newObj,object,arrayList);}return arrays;}/**** @param arrs      要返回的集合* @param newObjs  规划表* @param object    上一级的对象* @param lists     下级的集合*/private void addPlan(List<List<T>> arrs, List<T> newObjs, T object, List<List<T>> lists){if(lists.size() == 0 || lists.get(0).size() == 0){newObjs.add(object);arrs.add(newObjs);}else {newObjs.add(object);for(T obj :lists.get(0)){List<List<T>> arrays = new ArrayList<>();for(int i = 1 ; i < lists.size() ; i ++){arrays.add(lists.get(i));}ArrayList<T> objects = new ArrayList<>();objects.addAll(newObjs);addPlan(arrs, objects,obj,arrays);}}}}

使用方式

//简单用String类型 来进行组合。 根据需求可以使用自定义类
String[] style = {"简朴","风采"};//风格
String[] color = {"黄","白","黑"};//颜色
String[] size = {"41","42","43","44"};//尺寸
// String 映射, 可根据需求使用其他类型或自定义类。不懂什么是泛型 就得先了解泛型了
List<List<String>> list = new SpecAlgorithm<String>().specesPlan(Arrays.asList(style),Arrays.asList(color),Arrays.asList(size));
for(List<String> sku : list){//遍历组合StringBuilder sb = new StringBuilder();for(String str: sku){//拼接组合sb.append(str+" " );}System.out.println(sb.toString());
}

运行结果

到此 功能就写完了,该算法灵活度高,不论你用什么类型数据作为sku组合 都可不用做任何修改的情况下直接调用。

也可以加QQ群交流技术

最后推荐一个我自己写的MVVM开源项目《Open MVVM》
(想加扣扣讨论群请进入文章结尾查看群号)

有问题请私信,留言,或者发送邮件到我扣扣邮箱 qingingrunt2010

java 开发之商品规格属性(SKU)组合算法相关推荐

  1. 商品规格属性(SKU)组合算法

    借鉴java 开发之商品规格属性(SKU)组合算法_Runt02的博客-CSDN博客_java 商品属性 public List<LinkedHashMap<String, String& ...

  2. sku排列算法实现商品规格属性组合

    背景 前两年做过一个电商系统的新建商品模块,记忆中比较有难点的是在新增商品的sku规格时,需要把每个规格名称下的规格属性一一组合起来.因此在这里稍微的写个小demo记录下这种规格属性组合的思路

  3. 仿淘宝京东商品规格属性选择的最简单实现

    仿淘宝京东商品规格属性选择的最简单实现 商城里面的规格选择,网上大部分是自定义控件实现的,显得很是麻烦,而我的实现方式是大家最常用的控件RecyclerView,特点是性能好,简单.废话不多说,先看实 ...

  4. 电商后台开发之商品规格组合算法

    前言  最近接了私活,关于器械商城的项目,最后收尾阶段,发现发布商品还是存在着问题,对于多个相同/不同的商品规格输出成商品时,需要依据规格名对规格值进行排列组合,保证所有规格值都可以进行选择. 核心代 ...

  5. 关于商品规格(SKU)的设置

    2019独角兽企业重金招聘Python工程师标准>>> SKU定义和正确发布 SKU=stock keeping unit(库存量单位),SKU即库存进出计量的单位, 可以是以件.盒 ...

  6. mysql商品规格设计_关于商品规格(SKU)的设置

    SKU定义和正确发布 SKU=stock keeping unit(库存量单位),SKU即库存进出计量的单位, 可以是以件.盒.托盘等为单位.在服装.鞋类商品中使用最多最普遍. 例如纺织品中一个SKU ...

  7. 商品sku算法php,笛卡尔乘积-电商网站商品sku组合算法应用

    笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员. 利用笛卡尔乘积 ...

  8. 基于Vue实现电商SKU组合算法问题

    这个相对来说比较麻烦,还涉及到了下面"属性图片"的循环,但关键点还是在SKU组合的代码上面 以下是基于element-ui和vue的精简版demo代码: html <div& ...

  9. 基于Vue的淘宝SKU组合算法

    现有需求,当点击颜色时进行校验,若蓝色6.0寸无库存时禁选. 先上效果截图: 当前规格组合中 蓝色6寸 和 黑色中6寸 的库存均为0.后台返回数据如下图:实现思路: 例如:当选择蓝色时,进行循环遍历组 ...

最新文章

  1. Traveller项目介绍
  2. Java中的文件路径
  3. Azure运维系列 3:善用Azure捕获功能事半功倍
  4. 在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔
  5. 构建和实现单点登录解决方案(转载于IBMdeveloperWorks)
  6. sql 命令使用简单记录
  7. JavaScript(ES6)传播算子和rest参数简介
  8. python if else格式_Python if else条件语句详解
  9. linux系统rc路由配置_详解CentOS 6.4 添加永久静态路由所有方法汇总
  10. 克隆模式----快速与数据库比对数据
  11. Android 静默安装的几种方式
  12. Excel 分组后计算
  13. STM32F103C6T6初步学习
  14. 义哥征途登录显示服务器维护中,征途单机版
  15. 隐藏终端和暴露终端浅析
  16. 让你越来越值钱的秘密:目标清单
  17. 激活数字营销新引擎,亚马逊云科技为企业带来数字化营销新体验
  18. oracle如何总计,按组SQL运行总计(Oracle)
  19. 论php安全性,Ofstar和phpind论坛安全性分析
  20. C语言的 字符串 和 字节串 互转

热门文章

  1. 调用Mailgun API发送电子邮件一例
  2. 一文深入理解 Kubernetes
  3. k8s实践(6)--Kubernetes安全:API Server访问控制
  4. Excel制作资产负债表
  5. python使用openCV图像加载(转化为灰度图像)、平滑图像处理就是将每个像素的值变换为其相邻元素的平均值、可视化平滑处理之后的图像(Blurring Images)
  6. 使用百度地图API实现地图生成、标记以及标注
  7. 36线性映射03——线性空间的同构、同构的性质、线性同构
  8. 今日头条用户搜索“室内设计”显示的自媒体粉丝数量及分布情况统计(2020.1.8)
  9. 2022 极术通讯-安谋科技参与起草的PSA相关物联网终端安全标准介绍(电信终端产业协会发布)
  10. niushop多商户商户端手机uniapp源码v4单商户v4_Saas开源版含uniapp以及niushop社区团购标准版源码开源的区别