java实现笛卡尔积算法
来源:互联网 发布:linux字符集 编辑:程序博客网 时间:2024/06/06 00:05
private static void descartes(List<List<String>> dimvalue, List<List<String>> result, int layer, List<String> curList) { if (layer < dimvalue.size() - 1) { if (dimvalue.get(layer).size() == 0) { descartes(dimvalue, result, layer + 1, curList); } else { for (int i = 0; i < dimvalue.get(layer).size(); i++) { List<String> list = new ArrayList<String>(curList); list.add(dimvalue.get(layer).get(i)); descartes(dimvalue, result, layer + 1, list); } } } else if (layer == dimvalue.size() - 1) { if (dimvalue.get(layer).size() == 0) { result.add(curList); } else { for (int i = 0; i < dimvalue.get(layer).size(); i++) { List<String> list = new ArrayList<String>(curList); list.add(dimvalue.get(layer).get(i)); result.add(list); } } } }
public static void main(String[] args) { List<List<String>> list = new ArrayList<List<String>>(); List<String> listSub1 = new ArrayList<String>(); List<String> listSub2 = new ArrayList<String>(); List<String> listSub3 = new ArrayList<String>(); listSub1.add("1"); listSub1.add("2"); listSub2.add("3"); listSub2.add("4"); listSub3.add("a"); listSub3.add("b"); list.add(listSub1); list.add(listSub2); list.add(listSub3); List<List<String>> result = new ArrayList<List<String>>(); descartes(list, result, 0, new ArrayList<String>()); System.out.println(JSON.toJSONString(result)); }
运行结果:
[["1","3","a"],["1","3","b"],["1","4","a"],["1","4","b"],["2","3","a"],["2","3","b"],["2","4","a"],["2","4","b"]]
阅读全文
0 0
- java实现笛卡尔积算法
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- java 笛卡尔积实现
- 笛卡尔积的Java实现
- Java中笛卡尔积的实现
- 笛卡尔积 C# 算法
- Java 笛卡尔积
- JAVA语言中二维数组的笛卡尔积实现
- php 笛卡尔积的实现
- javascript 笛卡尔积算法(直积算法)
- 笛卡尔积,python实现以及改装
- JavaScript笛卡尔积超简单的实现
- php实现数组的笛卡尔积
- 笛卡尔积实现(递归C++版本)
- 多维数组笛卡尔乘积算法实现思路探索
- POJ 1012 Joseph
- 小强学Python+OpenCV之-1.4.2裁剪
- 微信小程序开发之不能使用eval函数的问题
- Linux多网卡同网段问题
- LabVIEW的 Session In 和 motion in
- java实现笛卡尔积算法
- ffmpeg视频压缩命令
- 深入理解:overflow:hidden——溢出,坍塌,清除浮动
- iOS打包上传App Store一直报-22421
- 海航陈峰回忆创业史:那是一个非常有趣的时代!
- 今天开通了博客
- bzoj 2599 [IOI2011]Race
- matlab R2016a 安装libsvm 64位windows 各种问题汇总
- 分页查询的简单实现