このコードはオンラインで見つかったので、指定された配列を置換して、与えられた数の可能な組み合わせをすべて返すことができます。誰もこのコードを変更して2D配列を組み込む方法を知っていますか?2D ArrayListコードを2D配列コードに変更する
public static ArrayList<ArrayList<Integer>> permute(int[] numbers) {
ArrayList<ArrayList<Integer>> permutations = new ArrayList<ArrayList<Integer>>();
permutations.add(new ArrayList<Integer>());
for (int i = 0; i < numbers.length; i++) {
ArrayList<ArrayList<Integer>> current = new ArrayList<ArrayList<Integer>>();
for (ArrayList<Integer> p : permutations) {
for (int j = 0, n = p.size() + 1; j < n; j++) {
ArrayList<Integer> temp = new ArrayList<Integer>(p);
temp.add(j, numbers[i]);
current.add(temp);
}
}
permutations = new ArrayList<ArrayList<Integer>>(current);
}
return permutations;
}
これは私がしようとしたものである:
public static int[][] permute(int[] numbers){
int[][] permutations = new int[24][4];
permutations[0] = new int[4];
for (int i = 0; i < numbers.length; i++) {
int[][] current = new int[24][4];
for (int[] permutation : permutations) {
for (int j = 0; j < permutation.length; j++) {
permutation[j] = numbers[i];
int[] temp = new int[4];
current[i] = temp;
}
}
permutations = current;
}
return permutations;
}
は、しかし、これはすべてゼロを返します。私は24と4を選択しました。なぜなら、それは私が必要とする2D配列のサイズなのですから。 ありがとう
アレイで読み上げます。努力を示す。スタックオーバーフローの助けを得るための最良の方法は、コードを書いてください。もしそれがうまくいかなければ、あなたが持っているものをエラーメッセージやその他の結果とともに投稿してください。詳細については、[良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask)のリンクをたどってください。 –
私は最初の試みを追加するために編集しました。私が最初に投稿したときに私はすでにこの試みをしていましたが、それはあまり役に立たないと思いました。アドバイスありがとうございます。 –