その場合、リンクされたリストを1つだけ使用することはできません
LinkedList<Integer> stacks[] = new LinkedList<Integer>[recDataSize];
入力方法
for(int i=0;i<recDataSize;i++){
int test = recDada.getKey();
stacks[i] = new LinkedList<Integer>();
while(test > 0) {
stacks[i].push(test % 10);
test = test/10;
}
}
したがってstack[0]
となります7,3
。stack[1]
になります1,8,0
印刷機能
//Add 0s to each stack
for (int i = 0; i <stacks.length; i++) {
while(stacks[i].size() < 5) stacks[i].addFirst(0);
}
//Assuming all stacks are length 5 as they have been set in loop i
for (int j = 0; j < 5; j++) {
for (int i = 0; i <stacks.length; i++) {
System.out.print(stacks[i].get(j)+" ");
}
System.out.println();
}
スタックごとに入力が必要です。
もう 1 つのオプションは、-1 のような未使用の文字を使用して、1 つの長いリンク リスト内の数値を区切ることです。次に、そのリンクされたリストを 2 次元配列にマップして出力します。
そのリンクされたリストについて
LinkedList<integer> stack=new LinkedList<Integer>();
入力方法:
for(int i=0;i<recDataSize;i++){
int test = recData.getKey();
stacks[i] = new LinkedList<Integer>();
while(test > 0) {
stacks[i].push(test % 10);
test = test/10;
}
while(stacks[i].size() < 5) stacks[i].addFirst(0);
//Add 0 in the input now not in printing function
}
したがって、スタックは0 0 0 7 3 0 0 1 8 0
マッピング機能
int map[][]=new int[recDataSize][5]; //This is the 2d array
for (int i = 0; i <recDataSize; i++) {
for (int j = 0; j < 5; j++) map[i][j]=stack.get((i*5)+j);
}
行列は 0 0 0 0 0 1 7 8 3 0 になります
(i、j)で印刷するだけです