【发布时间】:2015-11-04 09:39:40
【问题描述】:
如何根据其键值生成数组值的组合
我有以下来自文件的输入。字符串索引键和值数组
SL [1,3]
SW [5,7]
PL [11,12]
PW [16]
我正在尝试生成以下键和值的组合
例如(键):
(SL,SW) : < 1,5 > < 1,7 > < 3,5 > < 3,7 >
(SL,PL): < 1,11 > < 1,12 > < 3,11 > < 3,12 >
(SL,PW): < 1,16 > < 3,16 >
(SW,PL): < 5,11 > < 5,12 > < 7,11 > < 7,12 >
(SW,PW): < 5,16 > < 7,16 >
(PL,PW): < 11,16 > < 12,16 >
Consider combination of three attributes:
(SL,SW,PL): < 1,5,11 > < 1,5,12 > < 1,7,11 > < 1,7,12 > < 3,5,11 > < 3,5,12 > < 3,7,11 > < 3,7,12 >
(SL,SW,PW): < 1,5,16 > < 1,7,16 > < 3,5,16 > < 3,7,16 >
(SL,PL,PW): < 1,11,16 > < 1,12,16 > < 3,11,16 > < 3,12,16 >
(SW,PL,PW): < 5,11,16 > < 5,12,16 > < 7,11,16 > < 7,12,16 >
到目前为止,我只能为键创建组合。但这包括我不需要的 SL SL,我还需要获取我之前提到的值组合。
public void GenCombinations(String[] str_arr) {
for (int i = 0; i < str_arr.length; i++) {
System.out.print(str_arr[i] + " ");
}
/*COMBINATIONS OF LENGTH ONE*/
for (int i = 0; i < str_arr.length; i++) {
System.out.println(str_arr[i]);
}
/*COMBINATIONS OF LENGTH TWO*/
for (int i = 0; i < str_arr.length; i++) {
for (int j = 0; j < str_arr.length; j++) {
System.out.println(str_arr[i] + " " + str_arr[j]);
}
}
/*COMBINATIONS OF LENGTH THREE*/
for (int i = 0; i < str_arr.length; i++) {
for (int j = 0; j < str_arr.length; j++) {
for (int k = 0; k < str_arr.length; k++) {
System.out.println(str_arr[i] + " " + str_arr[j] + " " + str_arr[k]);
}
}
}
}
电流输出
SL
SW
PL
PW
SL SL
SL SW
SL PL
SL PW
.
.
.
如何达到所需的输出以获取值的组合以及键的组合?
请提出建议。
【问题讨论】:
标签: java arrays combinations