1
int test = recDada.getKey();
LinkedList<Integer> stack = new LinkedList<Integer>();
while(test > 0) {

    stack.push(test % 10);
    test = test/10;             
}
for (int i = 0; i < stack.size(); i++) {
    while(stack.size() < 5) stack.addFirst(0);
    System.out.println(stack.get(i));

        }

事情是这样的,我有这段代码,它包含一个 int 获取我的地图键,它有很多像'73','180'这样的数字......我需要将这些数字转换成这样的东西

我需要的输出:

0 0
0 0
0 1
7 8
3 0

我得到的输出:

0 
0 
0
7
3
0 
0 
1
8
0 

你们能给我一个提示吗?无论如何,谢谢,对不起我的英语:\

4

2 回答 2

2

你不能只使用一个链表

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,3stack[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 这样的未使用字符来分隔一个长链表中的数字。然后将该链表映射到二维数组并打印:

现在对于那个链表

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)

于 2012-12-10T05:37:03.437 回答
1

你可以改变

 System.out.println(stack.get(i));

 System.out.print(stack.get(i));

 if (i % 2 == 0) 
     System.out.print(" "); 
 else
     System.out.println();
于 2012-12-10T05:11:47.703 回答