我正在尝试生成存储在Map>
中的元素的键和值组合例如:{3 = [16],2 = [11,12],1 = [5,7],0 = [1,3]}
需要将组合作为
[0,1]-> [[1,5],[1,7],[3,5],[3,7]]
[0,2]-> [[1,11],[1,12],[3,11],[3,12]] and so on..
目前我能够获得这些组合。
但我面临一个问题 1.我只需要获得map.size -1的组合 即目前我的结果是
FINAL RESULT*** [3]===[ 16]
FINAL RESULT*** [2]===[ 11, 12]
FINAL RESULT*** [1]===[ 5, 7]
FINAL RESULT*** [0]===[ 1, 3]
FINAL RESULT*** [3, 2]===[ 16 11, 16 12]
FINAL RESULT*** [3, 1]===[ 16 5, 16 7]
FINAL RESULT*** [3, 0]===[ 16 1, 16 3]
FINAL RESULT*** [2, 1]===[ 11 5, 11 7, 12 5, 12 7]
FINAL RESULT*** [2, 0]===[ 11 1, 11 3, 12 1, 12 3]
FINAL RESULT*** [1, 0]===[ 5 1, 5 3, 7 1, 7 3]
FINAL RESULT*** [3, 2, 1]===[ 16 11 5, 16 11 7, 16 12 5, 16 12 7]
FINAL RESULT*** [3, 2, 0]===[ 16 11 1, 16 11 3, 16 12 1, 16 12 3]
FINAL RESULT*** [3, 1, 0]===[ 16 5 1, 16 5 3, 16 7 1, 16 7 3]
FINAL RESULT*** [2, 1, 0]===[ 11 5 1, 11 5 3, 11 7 1, 11 7 3, 12 5 1, 12 5 3, 12 7 1, 12 7 3]
FINAL RESULT*** [3, 2, 1, 0]===[ 16 11 5 1, 16 11 5 3, 16 11 7 1, 16 11 7 3, 16 12 5 1, 16 12 5 3, 16 12 7 1, 16 12 7 3]
我只需要
FINAL RESULT*** [3, 2, 1]===[ 16 11 5, 16 11 7, 16 12 5, 16 12 7]
FINAL RESULT*** [3, 2, 0]===[ 16 11 1, 16 11 3, 16 12 1, 16 12 3]
FINAL RESULT*** [3, 1, 0]===[ 16 5 1, 16 5 3, 16 7 1, 16 7 3]
FINAL RESULT*** [2, 1, 0]===[ 11 5 1, 11 5 3, 11 7 1, 11 7 3, 12 5 1, 12 5 3, 12 7 1, 12 7 3]
我目前的代码是here
我应该在哪里保持这种状况?
答案 0 :(得分:0)
在你的
中private static void GenCombinations(String[] head, String[] tail, int headIndex, int tailIndex)
方法你可以检查头部阵列的长度,如果它不是三个则返回。
所以添加
if (head.length != 3) {
return;
}
在该方法的顶部,它应该打印你想要的。您可以将3替换为您想要的任何条件,例如地图的大小 - 1或您需要的任何条件。