package com.pnova.demo;
import java.util.ArrayList;
import java.util.List;
/**
* 类名称:Range
* 创建人:qian.long
* 创建时间:2011-8-9 下午05:44:17
* 修改人:qian.long
* 修改时间:2011-8-9 下午05:44:17
* 修改备注:
* @version
*/
public class Range {
public static void main(String[] args) {
String[] a1 = new String[]{"38码", "39码"};
String[] a2 = new String[]{"黑色", "白色"};
String[] a3 = new String[]{"ys1001", "ys1002"};
List<String[]> list = new ArrayList<String[]>();
list.add(a1);
list.add(a2);
list.add(a3);
List<String> rlist = new ArrayList<String>();
rlist = Range.test(list, a1, "", rlist);
for (String str : rlist) {
System.out.println(str);
}
}
/**
* 排列组合
* @Title: test 排列组合
* @Description: TODO 排列组合
* @param list 需要排列组合的数组list
* @param arr 第一个数组
* @param str
* @param rlist 组合完的字符串list
* @return List<String>
* @author qian.long
*/
public static List<String> test(List<String[]> list, String[] arr, String str, List<String> rlist) {
//迭代list
for(int i = 0; i < list.size(); i++) {
//取得当前的数组
if(i == list.indexOf(arr)) {
//迭代数组
for (int j = 0; j < arr.length; j++) {
String st = arr[j].trim();
if(i == 0) {
st = str + st;
} else {
st = str + " " + st;
}
if(i < list.size() - 1) {
test(list, list.get(i + 1), st, rlist);
} else if(i == list.size() - 1) {
rlist.add(st);
//System.out.println(st);
}
}
}
}
return rlist;
}
}